Mod rewrite 重写规则-使用破折号获取所有URL

Mod rewrite 重写规则-使用破折号获取所有URL,mod-rewrite,.htaccess,Mod Rewrite,.htaccess,我需要用破折号将所有URL重定向到特定页面。 例如: site.com/此url到site.com/page.php?url=此url 重写规则 RewriteRule ^(.+-.+)$ page.php?url=$1 挂起http。没有回应 什么是错误的,如何做 试试这个,你可能有一个无限循环 RewriteCond $0 !^page\.php RewriteRule ^(.+-.+)?$ page.php?url=$1 [L,B,QSA] 现在: 如果您已经请求page.php,R

我需要用破折号将所有URL重定向到特定页面。
例如:
site.com/此url
site.com/page.php?url=此url

重写规则

RewriteRule ^(.+-.+)$ page.php?url=$1
挂起http。没有回应


什么是错误的,如何做

试试这个,你可能有一个无限循环

RewriteCond $0 !^page\.php
RewriteRule ^(.+-.+)?$ page.php?url=$1 [L,B,QSA]
现在:

  • 如果您已经请求page.php,RewriteCond将避免匹配规则
  • QSA
    标志将原始请求中的所有查询参数附加到重写的请求中
  • B
    标志转义backreference
    $1
    ,以便可以安全地将其用作查询参数
  • L
    标志不是严格必需的,但可以避免在匹配此重写规则时评估其他重写规则

您也可以尝试此选项:

RewriteCond %{REQUEST_URI} !^page\.php
RewriteRule - page.php?url=%{REQUEST_URI} [L,B,QSA]