Apache htaccess条件+;静态化
目前,我在htaccess中有设置,因此example.com/dept/noc转到:example.com/index.php?dept=dept&n=noc使用Apache htaccess条件+;静态化,apache,.htaccess,url-rewriting,Apache,.htaccess,Url Rewriting,目前,我在htaccess中有设置,因此example.com/dept/noc转到:example.com/index.php?dept=dept&n=noc使用 RewriteEngine On RewriteRule ^([A-Za-z]+)/([A-Za-z]+)$ index.php?dept=$1&n=$2 [QSA] RewriteCond %{SERVER_PORT} 80 我有一个名为upload的文件夹,如何确保url重写对/upload/文件夹无效(例外),因为
RewriteEngine On
RewriteRule ^([A-Za-z]+)/([A-Za-z]+)$ index.php?dept=$1&n=$2 [QSA]
RewriteCond %{SERVER_PORT} 80
我有一个名为upload的文件夹,如何确保url重写对/upload/文件夹无效(例外),因为
example.com/upload/file.doc不起作用?试试:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/upload/.*
RewriteRule ^([A-Za-z]+)/([A-Za-z]+)$ index.php?dept=$1&n=$2 [QSA]
RewriteCond %{SERVER_PORT} 80
尝试:
更通用的方法是,如果URL直接匹配现有文件或目录,则添加一个不重写的条件:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
这样,您就不必在重写规则中维护/upload、/images等文件夹的列表。如果/upload中不存在file.doc,则重写将完成。更通用的方法是添加一个条件,如果URL直接匹配现有文件或目录,则不重写:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
这样,您就不必在重写规则中维护/upload、/images等文件夹的列表。如果/upload中不存在file.doc,则重写将完成。您可以像下面这样比较特定组的匹配情况:
RewriteCond $1 !=upload
RewriteRule ^([A-Za-z]+)/([A-Za-z]+)$ index.php?dept=$1&n=$2 [QSA]
请注意,=代码>表示词典比较,但也可以使用正则表达式:
RewriteCond $1 !^upload$
RewriteRule ^([A-Za-z]+)/([A-Za-z]+)$ index.php?dept=$1&n=$2 [QSA]
您可以这样比较特定组的匹配:
RewriteCond $1 !=upload
RewriteRule ^([A-Za-z]+)/([A-Za-z]+)$ index.php?dept=$1&n=$2 [QSA]
请注意,=代码>表示词典比较,但也可以使用正则表达式:
RewriteCond $1 !^upload$
RewriteRule ^([A-Za-z]+)/([A-Za-z]+)$ index.php?dept=$1&n=$2 [QSA]
添加带异常的重写条件?添加带异常的重写条件?