假设我的网站名称是www.example.com,这是用php编写的。 当我输入www.example.com时会显示页面。但是当我输入 www.example.com/content/somepage.html 时,它会说找不到404页面,因为它不存在是正确的。
现在,如果用户手动输入 www.example.com/content/somepage.html ,我不应该重定向到错误404页面,而是需要内容/某个页面。 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]
答案 0 :(得分:0)
您可以在站点根目录中使用此规则.htaccess:
DirectroyIndex index.php
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ index.php?path=$1 [QSA,L]
这会在path
中使用URI路径/index.php
填充content/somepage.html
个查询参数。
或者使用FallbackResource
:
FallbackResource index.php
并在$_SERVER['REQUEST_URI']
中使用/index.php
变量来获取原始URI。
答案 1 :(得分:0)
您正在谈论的可以通过.htaccess
使用url routing
来实现。
样品
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^content/(\d+)*$ ./index.php?id=$1
根据评论进行更新。
在最后一行你可以使用......
RewriteRule (.*) index.php?url=$1 [L,QSA]
在index.php
文件中,您应该能够将其余字符串作为$_GET['url'];