我目前的htaccess文件(由@anubhava提供)是
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.example\.com
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
# load index.php by default
DirectoryIndex index.php
RewriteBase /
# remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ /$1 [NE,R=301,L]
# for all other requests load room.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/(1|2|3|4|5|6|7|8|9|10|anonymity|similarity|inconspicuous)
RewriteRule ^((?!(index|room)\.php).+)$ room.php?u=$1 [L,NC]
现在的工作方式是,如果有人访问www.example.com,他们将被定向到index.php
。如果他们访问www.example.com/anythingelse,他们会被重定向到room.php
我有3个额外的变量可供用户随时传递。他们可能只使用其中的一个,或者可能只使用其中的三个。另外三个变量是
redirect
panic
timeout
如果我在网址中使用全部三个,它看起来像
http://www.example.com/this?panic=0&timeout=3&redirect=google.com
但正如我所说,他们可能只会传递其中一些,所以另一种变化可能是
http://www.example.com/this?timeout=3&redirect=google.com
是否有可能动态(无特定顺序)确定选择了哪些变量,并能够将它们传递给room.php
?
答案 0 :(得分:1)
您可以使用上一条规则中的QSA
标记传递它们:
RewriteRule ^((?!(index|room)\.php).+)$ room.php?u=$1 [L,NC,QSA]
这会将查询字符串传递给room.php
。