1

我有这个:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php [QSA]

删除“.php”扩展名,效果很好。我一直在尝试添加另一个规则,但是它被忽略了。我需要第二条规则说:

example.php/"variable" 然后用 example.php?page=variable 子

用户看到的 URL:

example.com/folder/example/variable

实际页面是 example.com/folder/example?page=variable

我对重写引擎有基本的了解,但我不是专家。谢谢!

4

1 回答 1

0

您需要在 php 规则中添加另一个条件,用于检查重写目标是否确实存在。之后,您想要几乎相同的东西,但您检查路径信息:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}.php -f
RewriteRule ^(.*)$ $1.php [QSA,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^/(.*)/([^/]+)$
RewriteCond %{DOCUMENT_ROOT}/%1.php -f
RewriteRule ^(.*)/([^/]+)$ /$1.php?page=$2 [L,QSA]
于 2013-10-09T06:21:00.100 回答