1

我有一个具有此设置的页面:

Options All -Indexes
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /demo/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_URI} !^(.*)show(/|.*)$
RewriteRule . /demo/index.php [L]
</IfModule>

例如,当您请求页面http://example.com/demo/any_folder/时,它会在不更改 URL 的情况下加载http://example.com/demo/index.php,例如从数据库中检索数据。嗯,这行得通。但我想添加和例外。我需要一个条件,如果您访问http://example.com/demo/any_folder/show它会加载相同的 URL,删除单词“show”但避免实际定义的重定向。因此,它将加载http://example.com/demo/any_folder/而不是http://example.com/demo/index.php。有谁知道如何做到这一点?

4

1 回答 1

1

URL 必须有一些不同的地方才能被重定向到index.php. 以下.htaccess代码添加了一个查询参数?show来区分这两个 URL。

因为,重定向是内部的;用户永远不会看到参数。

RewriteEngine On
RewriteBase /demo/

RewriteRule ^index\.php$ - [L]
RewriteRule ^(.*)/show/?$ $1?show [NC,QSA,L]

RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{QUERY_STRING} !^show [NC]
RewriteRule . /demo/index.php [L]
于 2013-08-15T03:57:30.727 回答