我已经尝试了很多次寻找解决方案,但我根本找不到。
我有一个运行Apache w/PHP(启用了mod_rewrite)的网络服务器,我只想做以下事情:
来自的请求
downloadedReports/testreport.pdf
请求
downloadedReports/testreport.php
我目前已经尝试了以下重写代码:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
Options +Indexes
RewriteEngine On
RewriteRule .pdf $1.php [NC,L]
</IfModule>
但它根本不起作用。
注意:我不想重定向url/将目标发送到其他页面。我只想重写请求。
经过更多的谷歌搜索和尝试/失败,我找到了问题的解决方案。现在按预期工作!
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^([^.]+).pdf$ $1.php [QSA,L]
看看这篇文章,它解释了如何删除它们:
http://alexcican.com/post/how-to-remove-php-html-htm-extensions-with-htaccess/
正在删除扩展要从php文件中删除.php扩展名,例如从yoursite.com/wallpaper.php到yoursite.com/墙纸,您必须添加.htaccess文件中的以下代码:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^.]+)$ $1.php [NC,L]
或者我们的目的您将其更改为:
Options +FollowSymLinks
Options +Indexes
<IfModule mod_rewrite.c>
RewriteEngine On
## Block acess to dirs
RewriteCond %{REQUEST_FILENAME} !-d
## Block acess to files
RewriteCond %{REQUEST_FILENAME} !-f
## Block acess for links
RewriteCond %{REQUEST_FILENAME} !-l
## don't do anything
RewriteRule ^ - [L]
RewriteRule ^([^.]+).(pdf)$ $1.php [QSA,L]
</IfModule>