【发布时间】:2016-04-09 04:51:34
【问题描述】:
假设我的网站名称是 www.example.com,它是用 php 编写的。 当我键入 www.example.com 时,将显示该页面。但是当我输入 www.example.com/content/somepage.html 时,它说 404 page not found 这是正确的,因为它不存在。
现在,如果用户手动键入此 www.example.com/content/somepage.html,我不应该重定向到错误 404 页面,而是需要 content/somepage.html 这个值我可以进一步处理,这是我的要求。
通常 index.php 是第一个被调用的页面,有什么方法可以获取 www.example.com
之后输入的值content/somepage.html 只是一个例子,但它可以是任何东西。所以我需要获取 www.example.com 之后的内容。
我正在使用 wamp,这两个文件存在于 www 根文件夹中
index.php
<?php
echo 'The Uri is : '.$_SERVER['REQUEST_URI'];
echo '<br /><br />';
if(isset($_SERVER['path']))
echo 'The parameter is : '.$_SERVER['path'];
?>
.htaccess 文件
DirectroyIndex index.php
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ index.php?path=$1 [QSA,L]
【问题讨论】:
-
使用 mod_rewrite 似乎有点矫枉过正(从关于重写规则的问题数量来看,它很容易被破解)。我会使用 ErrorDocument 处理程序 - 例如见stackoverflow.com/questions/9631496/…
-
@symcbean 我看到了但不明白你能说我应该做些什么改变