On Wed, May 21, 2025 at 12:19 PM J Lance Wilkinson <jl...@psu.edu> wrote:

> I have a directory /PMHS72/ which contains a few .html and .php files
> that I want to present, and all other files in the directory are blocked.
>
> I need to rewrite requests for the files in the directory to redirect
> any explicit requests for files in the directory, UNLESS they are those
> few whitelisted files, to be sent to one specific one of those
> whitelisted .php files as a parameter.
>
> Here's my configuration -- directory and rewrite rules.
>
>      RewriteEngine On
>      LogLevel alert rewrite:trace5
>
>      # Allow direct access to whitelisted PHP and HTML files
>      RewriteCond %{REQUEST_URI}
> ^/PMHS72/(index|gateway|verify|CodePreview|wrapper|roster)\.php$ [NC,OR]
>      RewriteCond %{REQUEST_URI} ^/PMHS72/(privacy|terms)\.html$ [NC]
>      RewriteRule ^ - [L]
>
>      # Rewrite everything else under /PMHS72/ to go through wrapper.php
>      #RewriteRule ^PMHS72/(.*)$ /PMHS72/wrapper.php?file=$1 [QSA,L]
>      RewriteRule ^/?PMHS72/(.*)$ /PMHS72/wrapper.php?file=$1 [QSA,L]
>
>
>
>      <DirectoryMatch "^/var/www/html/PMHS72/?$">
>          Options +Indexes
>          Require all granted
>      </DirectoryMatch>
>
>      <Directory "/var/www/html/PMHS72">
>          Require all denied
>
>          # Expose all whitelisted files
>          <FilesMatch
> "^(index|gateway|verify|CodePreview|wrapper|roster)\.php$">
>              Require all granted
>          </FilesMatch>
>
>          <FilesMatch "^(privacy|terms)\.html$">
>              Require all granted
>          </FilesMatch>
>
>          DirectoryIndex index.php
>
>      </Directory>
>
> Any attempt to reach /PMHS72/PMHS-72%20Alumni%20Roster.pdf SHOULD be
> rewritten to to this:
>
> /PMHS72/wrapper.php?file=PMHS-72%20Alumni%20Roster.pdf
>
> Instead I'm getting a server default 403 response, and even though I've
> got rewrite set to trace 5 I'm getting NO error log entries.
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org
> For additional commands, e-mail: users-h...@httpd.apache.org
>
>
What context are the rules defined in?  The vhost, directly?

If so, RewriteRule ^/? doesn't make sense, as you'll always see the leading
slash.

Lastly, if you have more than one vhost, run apachectl -S and make sure the
correct vhost is being accessed / edited.

Reply via email to