[英]Rewriting URL's Apache
好的,这已经让我发疯了一段时间。 那里有很多有关如何使用.htaccess文件重写URL的信息。 但是由于某些原因,经过数小时的尝试,我仍然无法对自己的网址产生任何影响。 我试过将指令移动到apache2.conf,仍然没有运气。 我不太擅长服务器管理,但是我要到达那里。 我确实注意到,尽管那里有很多站点,这些站点可能是由网页设计师等wordpress网站构建的,或者您拥有什么,即使它们具有干净的URL。
所以我需要做的就是粘贴这些mod重写规则之一,例如
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
到我的public_html目录中名为.htaccess的文件。 由于某种原因,这对我不起作用。 我使用的是数字海洋,因此我错过了设置LAMP服务器的关键步骤,因为我说我仍在与服务器管理员打交道。 任何帮助或建议,不胜感激!
对于大多数php框架(wordpress,laravel等),所有不是“真实”目录或文件的url请求都被重定向到单个入口点。 例如。 index.php
,在其中处理请求并相应显示页面。
这是一个简单的示例,其中所有不是实际目录或文件的请求都将重定向到index.php并进行处理:
的.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [NC,L]
的index.php
<?php
switch($_SERVER['REQUEST_URI']) {
default:
echo "404: Page cannot be found";
break;
case 'page1':
echo "This is page 1";
break;
case 'page2':
echo "This is page 2";
break;
case 'page3':
echo "This is page 3";
break;
}
因此,如果您访问http://somedomain.com/page1 ,它将显示“这是第1页”。 如果您访问http://somedomain.com/page4 ,它将显示“ 404:找不到页面”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.