Mod rewrite 为SEO友好URL重写简单html文件

Mod rewrite 为SEO友好URL重写简单html文件,mod-rewrite,seo,Mod Rewrite,Seo,我有一个简单的文件mydomain.com/business\u nottingham.html 我想将其重新写入一个SEO友好的URL,例如mydomain.com/business-nottingham/ 我用谷歌搜索了所有的例子,但它们似乎是为CMSE或PHP脚本设计的 有没有一个简单的.htaccess重写示例可以让我做上面非常简单的事情 编辑:我终于找到了下面的代码 Options +FollowSymlinks RewriteEngine On RewriteCond %{REQUE

我有一个简单的文件mydomain.com/business\u nottingham.html 我想将其重新写入一个SEO友好的URL,例如mydomain.com/business-nottingham/

我用谷歌搜索了所有的例子,但它们似乎是为CMSE或PHP脚本设计的

有没有一个简单的.htaccess重写示例可以让我做上面非常简单的事情

编辑:我终于找到了下面的代码

Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.html$ /$1 [L,R=301] 
然而,它仍然不太起作用。如果我输入整洁的URL,我会被重新定向到404页面,但输入准确的.html文件名会使我找到正确的文件,但不会显示整洁的URL


通过阅读各种文章和教程,我尝试了上述各种组合,但出于某种原因,它似乎对我不起作用。

只有当实际请求的是
.html
文件时,才想重定向,然后想在内部重写为html文件。URL解析的方式是浏览器显示它认为它要去的地方(地址栏中的URL),然后向web服务器发出请求。如果Web服务器(htaccess文件所在的位置)想要更改浏览器URL地址栏中的内容,则需要通知浏览器加载完全不同的URL。然后浏览器将请求新的URL。然后服务器必须在内部将该URL重写回实际资源所在的位置(第一个URL),但浏览器没有看到这种情况

RewriteEngine On

RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ /([^\ ]+)\.html
RewriteRule ^ /%2/ [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^/(.*?)/?$
RewriteCond %{DOCUMENT_ROOT}/%1.html -f
RewriteRule ^ /%1.html [L] 

您的原始url是seo友好的。如果你确实决定重写到稍微整洁的url,那么请确保你也更新了所有指向它的链接,并设置301重定向,这样你就不会破坏它。好的,是的,我确实意识到它已经非常有利于SEO-我只是想让它更整洁。你有关于如何重写的答案吗?这看起来像你的答案。还要更新新结构的任何内部链接,并尝试更新外部链接。