[英]mod_rewrite rule for all except some specific paths
如何编写与此相反的mod_rewrite规则:
RewriteRule ^(.+)/fixed_path/(page1|page2)([^/]+)$ /index.php?fixed_path/show/$2 [L]
也就是说,我希望表单中的所有页面:
ignored_path/fixed_path/x
重定向到
/index.php/fixed_path/show/x
哪里
即,我想要一个规则以“ ignored_path / fixed_path / x”形式重定向所有内容,除了特定的页面(page1,page2等)外,这些页面已经由我的Web应用程序正确处理了。
我正在尝试使用! 和[^]语法,但我不太了解它们的工作原理,尤其是当它们包含单词而不是单个字符时。
假设您想将blah/path/some_param
(但不包括两种特殊情况: blah/path/page1
和blah/path/page2
)重定向到/path/show/some_param
,然后将其重写为index.php?var=/path/show/some_param
(以便浏览器在地址栏中显示/ path / show / some_param),然后应使用以下方法:
# Check if we have the mod_rewrite module available...
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^path/(?!page1$|page2$)([^/]+)$ http://yourdomain.com/path/show/$1 [R]
RewriteRule ^(path/show/.*)$ index.php?var=$1 [L]
</IfModule>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.