我刚刚开始.htaccess所以我不太了解它,我试着谷歌但它失败所以我在这里发布我的问题,我很抱歉,如果这个问题对你来说很愚蠢。我的问题是。 我在.htaccess页面中使用此代码:
RewriteEngine On
RewriteBase /learn/php/htaccess/
RewriteRule ^(.*)/(.*)$ index.php?n=$1&p=$2
当我输入此网址时:
http://localhost/learn/php/htaccess/page/number
它工作正常。但我也想在url中添加index.php(页面名称)。我试过这个:
http://localhost/learn/php/htaccess/index.php/page/number
和
http://localhost/learn/php/htaccess/index.php?page/number
但失败了。我怎样才能做到这一点? 我只是想这样做,如果我添加另一页然后我不确定,但我必须使用此代码:
RewriteEngine On
RewriteBase /learn/php/htaccess/
RewriteRule ^(.*)/(.*)$ index.php?n=$1&p=$2
RewriteRule ^(.*)/(.*)$ another.php?x=$1&y=$2
但如何以这种格式打开another.php页面? 感谢
答案 0 :(得分:1)
尝试在规则中添加一些条件:
RewriteEngine On
RewriteBase /learn/php/htaccess/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/(.*)$ index.php?n=$1&p=$2
至于路由到另一个页面,您需要区分两个路由之间的差异。例如,给定一个网址:
http://localhost/learn/php/htaccess/foo/bar
它应该路由到哪里?
index.php?n=foo&p=bar
或
another.php?x=foo&y=bar
htaccess对内容一无所知,只知道URL和正则表达式匹配它,所以除非你区分两者,否则不能将同一个东西路由到两个不同的脚本。
答案 1 :(得分:1)
你可以像这样轻松实现
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?data=$1 [QSA]
你在index.php中输入了这段代码
$data = explode("/",$_GET['data']);
$page = $data[0];
$number = $data[1];