我一直在尝试为一个使用$ _get函数通过使用字符串拉取内容页面的网站进行htaccess URL重写(R = 302)。例如,我正在尝试更改以下内容:
http://www.site.com/index.php?page=about
进入这个:
但是,如果我使用查询第二个URL,我已设法将其设置为重定向index.php文件中的页眉和页脚数据,但它不会获取CSS或$ _get内容的信息。以下是htaccess条目和$ _get信息:
RewriteEngine On
RewriteBase /
RewriteRule ^(.*?)/$ /index.php?page=$1 [NC,QSA,L]
RewriteRule ^(.*?)/$ $1.html [NC,L,QSA,R=302]
<?php
$folder = '';
$ext = 'html';
if (!$_GET['page'] || strpos($_GET['page'], '/') === true)
$path = 'home.' . $ext;
else $path = $_GET['page'] . '.' . $ext;
if (!file_exists($path)) {
$messages = array(
'404: Page does not exist; Please check the URL you entered.',
'404: Error 404, please check the URL of the page.'
);
print $messages[ rand(0, (count($messages) - 1)) ];
}
elseif (!@include($path)) print '300: couldn\'t get the page';
?>
任何帮助将不胜感激。我一直试图修改php代码,认为这是问题。
答案 0 :(得分:0)
首先,你的两个重写规则具有相同的条件,因此只有第一个才能满足。我想如果服务器上不存在请求的uri,你可能只想重写。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*?)/?$ /index.php?x=$1 [L]