从 PHP 7 迁移到 PHP 8 后,我遇到了 url 重写规则的问题。
在 htaccess 之上,我有以下代码
Options +FollowSymLinks RewriteEngine on RewriteBase /baba/ ErrorDocument 404 http://localhost/baba/404.php
如果我仅使用以下规则,则效果很好:-
RewriteRule ^s/([\w-]+)/(.*)$ search.php?feq=$1&key=$2 [QSA,L]
但是如果我添加更多如下规则,那么这些页面会给出 404。
RewriteRule ^s/([\w-]+)/(.*)/(.*)$ search.php?feq=$1&city=$2&key=$3 [QSA,L] RewriteRule ^s/([\w-]+)/(.*)/(.*)/(.*)$ search.php?feq=$1&pro=$2&city=$3&key=$4 [QSA,L]
如果我仅使用以下规则,则效果很好:-
RewriteRule ^([\w-]+)$ land.php?name=$1 [QSA,L]
但是如果我添加更多如下规则,则 css 和图像将停止在其他页面上加载,并且这些页面会给出 404。
RewriteRule ^([\w-]+)/(.*)/(.*)$ land.php?name=$1&pro=$2&city=$3 [QSA,L]
RewriteRule ^([\w-]+)/(.*)$ land.php?name=$1&key=$2 [QSA,L]
RewriteRule ^([\w-]+)/(.*)/(.*) land.php?name=$1&city=$2&key=$3 [QSA,L]
RewriteRule ^([\w-]+)/(.*)/(.*)/(.*)$ land.php?name=$1&pro=$2&city=$3&key=$4 [QSA,L] Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号