我有一个包含此设置的页面:
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,它会加载相同的网址,删除单词“show”但避免实际定义的重定向。因此,它会加载http://example.com/demo/any_folder/而不是http://example.com/demo/index.php。有谁知道怎么做?
答案 0 :(得分:1)
网址必须有不同的内容才能重定向到index.php
。以下.htaccess
代码添加了一个查询参数?show
,以区分两个网址。
因为,重定向是内部的;用户永远不会看到参数。
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]