微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

错误来自使用 .htaccess 的 seo 友好 url

如何解决错误来自使用 .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">

在云服务器上.htaccess文件代码

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 举报,一经查实,本站将立刻删除。