如何启用干净的URL? (VPS - Debian 9)

问题描述 投票:-1回答:3

我有一个VPS服务器(Debian 9),我希望有干净的网址。

如果我输入例如“examle.com/example”,则会弹出错误“内部服务器错误”,而不是显示页面。

我需要做些什么来使这个错误消失并显示页面?

php linux url debian vps
3个回答
0
投票

这种样式的URL(domain.tld / resource / path)需要通过mod_rewrite(使用Apache)或使用Nginx的try_files配置来处理。您使用哪种方法取决于您正在运行的HTTP服务器。除非你明确设置Nginx,否则它可能是Apache。

假设正在使用Apache(httpd) - 管理它的最简单方法是通过文档根目录中的.htaccess文件(index.php文件所在的文件)。您需要验证httpd配置中是否启用了mod_rewrite(通常位于/etc/httpd/httpd.conf中,或者在子目录中进一步分解)。

您可以通过mod_rewrite获得许多配置选项。这是一个将未指向实际目录或文件的所有URL(从而保留直接从httpd提供静态内容的能力)转换为index.php的示例:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

您需要解析URL以确定如何处理它(它将包含在$ _SERVER ['REQUEST_URI']中。如果您需要更改此配置,请务必参考mod_rewrite文档。


0
投票

试试这个我希望它能帮助你在你的html文件夹中创建一个.htaccess文件并在其中编写打击代码。

<IfModule mod_rewrite.c>
RewriteEngine On    
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L]
</IfModule>

或尝试下面。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
</IfModule>

最后一个用于结尾处的斜杠。 (仅使用代码作为您的需求)。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/$ $1.php
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]
</IfModule>

more you can understand on

谢谢。


0
投票

我不知道为什么,但是它总是向我显示错误“500”,即使我有空的.htaccess和基本文件apache2.conf和000-default.conf

© www.soinside.com 2019 - 2024. All rights reserved.