如何解决错误来自使用 .htaccess 的 seo 友好 url
首先,我在 localhost 中编码了我的网站,然后一切正常,所有 URL 都可以工作,但是当我将其上传到云 (GCP) 时,该 URL 不起作用(显示未找到该 URL) 以下代码是 localhost
中的.htaccess file
RewriteEngine On
RewriteBase /blog_site/
RewriteCond %{REQUEST_FILENAME} !-d [NC]
RewriteCond %{REQUEST_FILENAME} !-f [NC]
RewriteRule ^single_post/(.*)$ single_post.PHP?post_title=$1
RewriteRule ^single_post/(.*)/ single_post.PHP?post_title=$1
RewriteRule ^category/(.*)$ category.PHP?category=$1
RewriteRule ^category/(.*)/ category.PHP?category=$1
RewriteRule ^author/(.*)$ author.PHP?author=$1
RewriteRule ^author/(.*)/ author.PHP?author=$1
RewriteRule ^author/(.*)/(.*)$ author.PHP?author=$1&user=$2
RewriteRule ^author/(.*)/(.*)/ author.PHP?author=$1&user=$2
RewriteRule ^search/(.*)$ search.PHP?search=$1
RewriteRule ^search/(.*)/ search.PHP?search=$1
RewriteRule ^([^\.]+)$ $1.PHP [NC,L]
也使用基本标签
<base href="/blog_site/" target="_self">
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d [NC]
RewriteCond %{REQUEST_FILENAME} !-f [NC]
RewriteRule ^single_post/(.*)$ single_post.PHP?post_title=$1
RewriteRule ^single_post/(.*)/ single_post.PHP?post_title=$1
RewriteRule ^category/(.*)$ category.PHP?category=$1
RewriteRule ^category/(.*)/ category.PHP?category=$1
RewriteRule ^author/(.*)$ author.PHP?author=$1
RewriteRule ^author/(.*)/ author.PHP?author=$1
RewriteRule ^author/(.*)/(.*)$ author.PHP?author=$1&user=$2
RewriteRule ^author/(.*)/(.*)/ author.PHP?author=$1&user=$2
RewriteRule ^search/(.*)$ search.PHP?search=$1
RewriteRule ^search/(.*)/ search.PHP?search=$1
RewriteRule ^([^\.]+)$ $1.PHP [NC,L]
基本标签是
<base href="/" target="_self">
GCP 的 VM 实例链接,以便您可以看到网站的行为 website link
如果我手动输入网址 http://your_IP/contact.PHP 工作。但是,如果我使用 http://your_IP/contact 不起作用
解决方法
仅根据您显示的示例,请您尝试一次遵循规则。请确保在测试 URL 之前清除浏览器缓存。您的 htaccess 文件中存在多个问题,例如条件不存在、多视图(我们后来在评论中了解到已启用)导致您的代码出现问题。
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^single_post/(.*)/?$ single_post.php?post_title=$1 [NC,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^author/([^/]*)/(.*)/?$ author.php?author=$1&user=$2 [NC,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(category|author|search)/(.*)/?$ $1.php?$1=$2 [NC,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)/?$ $1.php [L]
由 OP 编辑:
请在继续之前请检查 .htaccess 是否启用它。如果您不知道是启用还是禁用,则在您的 .htaccess 文件中键入 ----
,如果显示 500 内部错误,则启用或禁用。然后尝试通过在互联网上搜索来启用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。