Php 使用.htaccess在url中添加页面名称
我刚刚开始。htaccess,所以我不知道太多关于它,我试图谷歌它,但失败了,所以我在这里张贴我的问题,我很抱歉,如果这个问题是愚蠢的为你。我的问题是。 我在.htaccess页面中使用此代码:Php 使用.htaccess在url中添加页面名称,php,.htaccess,Php,.htaccess,我刚刚开始。htaccess,所以我不知道太多关于它,我试图谷歌它,但失败了,所以我在这里张贴我的问题,我很抱歉,如果这个问题是愚蠢的为你。我的问题是。 我在.htaccess页面中使用此代码: RewriteEngine On RewriteBase /learn/php/htaccess/ RewriteRule ^(.*)/(.*)$ index.php?n=$1&p=$2 当我输入此url时: http://localhost/learn/php/htaccess/page/n
RewriteEngine On
RewriteBase /learn/php/htaccess/
RewriteRule ^(.*)/(.*)$ index.php?n=$1&p=$2
当我输入此url时:
http://localhost/learn/php/htaccess/page/number
它很好用。但是我还想在url中添加index.php(页面名称)。我试过这个:
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
但是我如何用这种格式打开另一个.php页面呢?
谢谢尝试在规则中添加一些条件:
RewriteEngine On
RewriteBase /learn/php/htaccess/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/(.*)$ index.php?n=$1&p=$2
至于路由到另一个页面,您需要区分这两个路由之间的差异。例如,给定一个url:
http://localhost/learn/php/htaccess/foo/bar
它应该路由到哪里
index.php?n=foo&p=bar
或
?
htaccess对内容一无所知,只知道URL和与之匹配的正则表达式模式,因此,除非您区分两者,否则无法将同一内容路由到两个不同的脚本。您只需这样做即可
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];
您将需要定义另一个规则(或更改正则表达式)来计算文件名。@Mubashar如果您想让index.php处理路径信息,那么这不是由htaccess来处理的,您必须为index.php编写脚本,以检查
PATH\u INFO
服务器变量,解析出页面/编号
,并正确返回脚本
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?data=$1 [QSA]
$data = explode("/",$_GET['data']);
$page = $data[0];
$number = $data[1];