Php HTACCESS URL变量重写
希望重写URL,但似乎无法使其正常工作 示例URL:Php HTACCESS URL变量重写,php,apache,.htaccess,mod-rewrite,url-rewriting,Php,Apache,.htaccess,Mod Rewrite,Url Rewriting,希望重写URL,但似乎无法使其正常工作 示例URL: http://www.example.com/find/agency.php?agency=33524&name=happy-example 理想的重写URL: http://www.example.com/find/agency/happy-example 多次尝试的重写之一: RewriteRule ^/([.]+)/([.]+)$ agency.php?agency=$1&name=$2 RewriteRule ^
http://www.example.com/find/agency.php?agency=33524&name=happy-example
理想的重写URL:
http://www.example.com/find/agency/happy-example
多次尝试的重写之一:
RewriteRule ^/([.]+)/([.]+)$ agency.php?agency=$1&name=$2
RewriteRule ^/([.]+)/([.]+)/$ agency.php?agency=$1&name=$2
即使无法删除agency=变量,我仍然无法让此URL写出变量-我是否正在向后重写?在执行重写之前,尝试使用重写条件捕获查询字符串 例如:
RewriteCond %{QUERY_STRING} ^agency=33524&name=([^&]+)
RewriteRule ^find/agency.php$ find/agency/%1? [R=301]
你的规则有几处不对劲。然而,要得到这样一个URL
http://www.example.com/find/33524/happy-example
您需要使用下面这样的重写
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^find/([^/]+)/([^/]+)/?$ /agency.php?agency=$1&name=$2 [L]
对当前匹配的符号使用惰性修改器[。]+将匹配所有内容
RewriteRule ^/([.]+?)/([.]+?)$ agency.php?agency=$1&name=$2
RewriteRule ^/([.]+?)/([.]+?)/$ agency.php?agency=$1&name=$2
您还可以将这些合并为一条规则
RewriteRule ^/([.]+?)/([.]+?)[/]{0,1}$ agency.php?agency=$1&name=$2
这不包括根据具体情况需要的任何标志