我有一个VPS服务器(Debian 9),我想要干净的URL。
如果输入例如“ examle.com/example”,则会弹出错误“内部服务器错误”,而不显示页面。
我该怎么做才能使此错误消失并显示页面?
答案 0 :(得分: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>
谢谢。
答案 1 :(得分:0)
这种URL样式(domain.tld / resource / path)需要通过mod_rewrite(对于Apache)或使用Nginx的try_files配置来处理。当然,使用哪个取决于运行的HTTP服务器。除非您明确设置Nginx,否则可能是Apache。
假设正在使用Apache(httpd),最简单的方法是通过文档根目录(您的index.php文件所在的目录)中的.htaccess文件。您需要验证是否在httpd配置中启用了mod_rewrite(通常在/etc/httpd/httpd.conf或在子目录中有更详细的信息)。
可以通过mod_rewrite获得许多配置选项。这是一个示例,该示例会将所有未指向实际目录或文件的URL转换为index.php(从而保留了直接从httpd提供静态内容的能力):
<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文档。配置。
答案 2 :(得分:0)
我不知道为什么,但是即使我有空的.htaccess和基本文件apache2.conf和000-default.conf,它仍然始终显示错误“ 500”