URL 在 Apache 服务器上重写导致 404 错误页面
URL Rewriting on Apache server causes 404 error page
几周前,我尝试 url 在我的共享主机上重写。它工作了一段时间,但现在它似乎破产了。不知道是什么问题,自己也解决不了。希望你们能帮上忙,伙计们。
这是计划。我想删除 url 中的扩展名(例如 'file.html' 或 'file.php'),仅删除文件名(例如 'file')。我的代码如下:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^index/(.*)/$ index.php?page=
RewriteRule ^([^\.]+)$ .php [NC,L]
RewriteRule ^([^\.]+)$ .html [NC,L]
ErrorDocument 404 404.php
ErrorDocument 403 403.php
ErrorDocument 401 401.php
</IfModule>
一个扩展说明:此 .htcaccess 文件位于目录 'portfolio' 中。根目录有另一个 .htcaccess 文件如下:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
</IfModule>
也许这是显而易见的事情,但我找不到问题所在。我确实在第一个 .htaccess 文件中尝试了 'RewriteBase /website/'、'RewriteBase /'、'RewriteCond %{REQUEST_FILENAME} !-f' 和 'RewriteCond %{REQUEST_FILENAME} !-d',但这不起作用。
您可以在 /portfolio/.htaccess
中使用这些规则
ErrorDocument 404 404.php
ErrorDocument 403 403.php
ErrorDocument 401 401.php
RewriteEngine On
RewriteBase /portfolio/
RewriteRule ^index/(.+?)/$ index.php?page= [L,QSA]
RewriteCond %{DOCUMENT_ROOT}/portfolio/\.html -f [NC]
RewriteRule ^([^.]+)$ .html [L]
RewriteRule ^([^.]+)$ .php [L]
您添加.php
或.html
的规则需要有一个RewriteCond
来检查您的portfolio
目录中是否存在相应的文件。
几周前,我尝试 url 在我的共享主机上重写。它工作了一段时间,但现在它似乎破产了。不知道是什么问题,自己也解决不了。希望你们能帮上忙,伙计们。
这是计划。我想删除 url 中的扩展名(例如 'file.html' 或 'file.php'),仅删除文件名(例如 'file')。我的代码如下:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^index/(.*)/$ index.php?page=
RewriteRule ^([^\.]+)$ .php [NC,L]
RewriteRule ^([^\.]+)$ .html [NC,L]
ErrorDocument 404 404.php
ErrorDocument 403 403.php
ErrorDocument 401 401.php
</IfModule>
一个扩展说明:此 .htcaccess 文件位于目录 'portfolio' 中。根目录有另一个 .htcaccess 文件如下:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
</IfModule>
也许这是显而易见的事情,但我找不到问题所在。我确实在第一个 .htaccess 文件中尝试了 'RewriteBase /website/'、'RewriteBase /'、'RewriteCond %{REQUEST_FILENAME} !-f' 和 'RewriteCond %{REQUEST_FILENAME} !-d',但这不起作用。
您可以在 /portfolio/.htaccess
ErrorDocument 404 404.php
ErrorDocument 403 403.php
ErrorDocument 401 401.php
RewriteEngine On
RewriteBase /portfolio/
RewriteRule ^index/(.+?)/$ index.php?page= [L,QSA]
RewriteCond %{DOCUMENT_ROOT}/portfolio/\.html -f [NC]
RewriteRule ^([^.]+)$ .html [L]
RewriteRule ^([^.]+)$ .php [L]
您添加.php
或.html
的规则需要有一个RewriteCond
来检查您的portfolio
目录中是否存在相应的文件。