%REQUEST_URI在.htaccess中没有斜杠

时间:2012-02-07 22:46:54

标签: apache .htaccess

我有很多以“display-”开头的文件,例如:

display-profile.php
display-photos.php
display-comments.php
...

我想保留这些名称以进行组织(因为有包含其他前缀的文件),但我想从我的网址中删除“display-”。
我打算使用.htaccess检查display-%{REQUEST_URI}是否是一个文件,但该环境变量在开头有一个斜杠“/”。

如何在开头没有斜线的%{REQUEST_URI}?或者,有没有其他方法来检查这个?

谢谢。我在Linux上使用Apache。

1 个答案:

答案 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]