Apache 解决冲突的url重写规则
我正在一个网站上工作,我面临的一个大问题是:Apache 解决冲突的url重写规则,apache,.htaccess,url-rewriting,Apache,.htaccess,Url Rewriting,我正在一个网站上工作,我面临的一个大问题是: 我想让我所有的流量到或到 (注意:这里的关键是,它可以在同一根域中处理无限多的子文件夹或页面) 我想重写为$name,除了我将指定的一些URL之外。 这一次,url仍然显示访问的页面,但实际上页面已经被重写。这与更改地址栏中url的第一个场景不同 这就是我所拥有的: <IfModule mod_rewrite.c> Options +FollowSymlinks Options -Multiviews Rewrite
<IfModule mod_rewrite.c>
Options +FollowSymlinks
Options -Multiviews
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} !^example\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/(candidates|css|employers|layout|pics|securimage)/?$
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
RewriteRule ^([^/]+)/?$ employers/page.php?page=$1 [L]
</IfModule>
选项+FollowSymlinks
选项-多视图
重新启动发动机
重写基/
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写cond%{HTTP_HOST}^示例\.com$[NC]
重写cond%{REQUEST_URI}^/(候选人| css |雇主|布局|图片|安全图片)/$
重写规则^(.*)$http://example.com/$1[R=301,L]
重写规则^([^/]+)/?$employers/page.php?page=$1[L]
我对上述问题的看法是:
非常感谢。您必须将您的条件与重写规则分开: 对于www子域:
RewriteCond %{HTTP_HOST} ^www.example.tld$
RewriteRule ^(.*) http://example.tld/$1 [QSA,R=301]
然后,对于QSA重定向,除非文件存在:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ employers/page.php?page=$1 [L]