繁体   English   中英

重写URL的Apache

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM