我有很多以“display-”开头的文件,例如:
display-profile.php
display-photos.php
display-comments.php
...
我想保留这些名称以进行组织(因为有包含其他前缀的文件),但我想从我的网址中删除“display-”。
我打算使用.htaccess检查display-%{REQUEST_URI}
是否是一个文件,但该环境变量在开头有一个斜杠“/”。
如何在开头没有斜线的%{REQUEST_URI}
?或者,有没有其他方法来检查这个?
谢谢。我在Linux上使用Apache。
答案 0 :(得分:2)
RewriteEngine on
RewriteBase /
RewriteCond %{DOCUMENT_ROOT}/display-$1 -f
RewriteCond %{REQUEST_URI} !display-([^/]+).php$
RewriteRule ([^/]+)$ display-$1 [L,QSA]
或者,另一种选择:
RewriteEngine on
RewriteCond %{REQUEST_URI} .(.+)$
RewriteCond %{DOCUMENT_ROOT}/display-%1 -f
RewriteRule . display-%1 [L,QSA]
可能更短:
RewriteEngine on
RewriteBase /
RewriteCond %{DOCUMENT_ROOT}/display-$1 -f
RewriteRule ^(.+)$ display-$1 [L,QSA]
甚至:
RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}/display-$1 -f
RewriteRule ^/?(.+)$ display-$1 [L,QSA]