使用.htaccess在网址中添加网页名称

时间:2014-07-23 21:01:07

标签: php .htaccess

我刚刚开始.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页面? 感谢

2 个答案:

答案 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];