0
我需要用破折号将所有网址重定向到特定页面。
例如:
site.com/this-url
到site.com/page.php?url=this-url
RewriteRule - 以破折号取所有网址
重写规则
RewriteRule ^(.+-.+)$ page.php?url=$1
只是挂HTTP。没有反应。
什么是错,它是如何做到的?
我需要用破折号将所有网址重定向到特定页面。
例如:
site.com/this-url
到site.com/page.php?url=this-url
RewriteRule - 以破折号取所有网址
重写规则
RewriteRule ^(.+-.+)$ page.php?url=$1
只是挂HTTP。没有反应。
什么是错,它是如何做到的?
试试这个,你可能会有一个无限循环。
RewriteCond $0 !^page\.php
RewriteRule ^(.+-.+)?$ page.php?url=$1 [L,B,QSA]
现在:
QSA
标志附加由原来的请求重写的请求B
标志逃避反向引用$1
,以便它可以安全地用作查询参数L
标志并非绝对必要,但避免了在这一块匹配你也可以尝试这个选项评估其他重写规则:
RewriteCond %{REQUEST_URI} !^page\.php
RewriteRule - page.php?url=%{REQUEST_URI} [L,B,QSA]