我有这个网站,结构如下:http://example.com/dir/index.php?first=12&second=16
。现在,我想将此链接编辑为:http://example.com/dir/12/16
。
所以,我在.htaccess
中添加http://example.com/dir/
;有内容:
RewriteEngine On
RewriteRule ^([0-9]+)$ ?first=(\d+)&second=(\d+)
我使用这个简单的PHP进行检查,它位于http://example.com/dir/
:
<?php
/* ... */
echo $_GET['first'] . ' - ' . $_GET['second'];
/* ... */
?>
当我转到http://example.com/dir/1/2
时,它会返回:404
。所以,我的.htaccess
并不能正常使用。
我的.htaccess
有什么问题?
答案 0 :(得分:1)
您需要为RewriteRule模式使用2个捕获gropus,否则将不会有第二个变量,即$2
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^dir/([0-9]+)/([0-9]+)/?$ /dir/index.php?month=$1&day=$2 [L]
答案 1 :(得分:0)
将此.htaccess
放入http://example.com/dir/
:
RewriteEngine On
RewriteRule ^([0-9]+)/([0-9]+)/?$ ?first=$1&second=$2
很简单。