htaccess url 重写多个 url
htaccess url rewrite multiple url
我在使用 .htaccess
重写我站点中的 url 时遇到了问题
index.php
$op = $_GET['op'];
switch ($op) {
case "src":
include("src.php");
break;
case "dts":
include ("dts.php");
break;
default:
include("home.php");
break;
}
Link重写
index.php?op=src
index.php?op=dts&idric=20&sp=2
.htaccess
Options +FollowSymLinks
RewriteEngine on
RewriteRule \.(css|jpe?g|gif|png|js|ico)$ - [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)/$ index.php?op= [L,QSA]
RewriteRule ^(.*)/idric/(.*)/sp/(.*)/$ index.php?op=&idric=&sp= [L,QSA]
如果我写第一个 link www.mysite.com/src/ 它显示正确的页面 (src.php),
但是如果我写第二个 url www.mysite.com/dts/idric/20/sp/2/ 它会显示默认页面 (home.php).
RewriteCond
仅适用于下一个 RewriteRule
。你的最后一条规则被之前的规则覆盖了。
你的规则是这样的:
Options +FollowSymLinks
RewriteEngine on
RewriteRule \.(css|jpe?g|gif|png|js|ico)$ - [L,NC]
# rule to ignore files and directories from all rewrite rules below
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
RewriteRule ^([^/]+)/idric/([^/]+)/sp/([^/]+)/$ index.php?op=&idric=&sp= [L,QSA,NC]
RewriteRule ^(.+?)/$ index.php?op= [L,QSA]
我在使用 .htaccess
重写我站点中的 url 时遇到了问题index.php
$op = $_GET['op'];
switch ($op) {
case "src":
include("src.php");
break;
case "dts":
include ("dts.php");
break;
default:
include("home.php");
break;
}
Link重写
index.php?op=src
index.php?op=dts&idric=20&sp=2
.htaccess
Options +FollowSymLinks
RewriteEngine on
RewriteRule \.(css|jpe?g|gif|png|js|ico)$ - [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)/$ index.php?op= [L,QSA]
RewriteRule ^(.*)/idric/(.*)/sp/(.*)/$ index.php?op=&idric=&sp= [L,QSA]
如果我写第一个 link www.mysite.com/src/ 它显示正确的页面 (src.php), 但是如果我写第二个 url www.mysite.com/dts/idric/20/sp/2/ 它会显示默认页面 (home.php).
RewriteCond
仅适用于下一个 RewriteRule
。你的最后一条规则被之前的规则覆盖了。
你的规则是这样的:
Options +FollowSymLinks
RewriteEngine on
RewriteRule \.(css|jpe?g|gif|png|js|ico)$ - [L,NC]
# rule to ignore files and directories from all rewrite rules below
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
RewriteRule ^([^/]+)/idric/([^/]+)/sp/([^/]+)/$ index.php?op=&idric=&sp= [L,QSA,NC]
RewriteRule ^(.+?)/$ index.php?op= [L,QSA]