Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 重定向301-从URL中删除.html扩展名_Regex_.htaccess_Redirect - Fatal编程技术网

Regex 重定向301-从URL中删除.html扩展名

Regex 重定向301-从URL中删除.html扩展名,regex,.htaccess,redirect,Regex,.htaccess,Redirect,我想从我的URL中删除.html扩展名,该扩展名位于特定目录中,并重定向它们 以下是结构的外观: mysite.com/category/nameofcategory/pagenumber.html 问题是nameofcategory和pagenumber可以是任何字母或数字 您能帮我一下吗?要删除URL上的.html扩展名并将301重定向到无扩展名URL,您可以在“特定目录”中的.htaccess中尝试以下操作: 我不建议将您的内容分散在不同文件夹中的许多html文件中。例如,如果您想更改页

我想从我的URL中删除
.html
扩展名,该扩展名位于特定目录中,并重定向它们

以下是结构的外观:

mysite.com/category/nameofcategory/pagenumber.html
问题是
nameofcategory
pagenumber
可以是任何字母或数字


您能帮我一下吗?

要删除URL上的
.html
扩展名并将301重定向到无扩展名URL,您可以在“特定目录”中的.htaccess中尝试以下操作:


我不建议将您的内容分散在不同文件夹中的许多html文件中。例如,如果您想更改页面的布局,这将变得非常不切实际

将内容存储在数据库中是一个更好的解决方案。如果不可能,html文件可能只包含格式化的文本内容,后端脚本可以在请求页面时将该内容嵌入到布局中

这需要在Apache配置中启用mod_rewrite模块

在这两种情况下,所有请求都将通过后端脚本进行路由,.htaccess可能如下所示:

RewriteEngine on
RewriteRule ^category/([^/.]+)/([^/.]+)/?$ index.php?category=$1&page=$2 [L]
RewriteRule ^category/([^/.]+)/([^/.]+).html$ category/$1/$2 [R=301,L]
正则表达式的这部分:
([^/]+)
匹配并捕获不包含字符/或的字符串。长度为1个字符或更长。捕获的字符串可以使用$1、$2等进行引用

现在,像mysite.com/category/foo/bar这样漂亮的URL可以工作了。此外,我们需要定义一个规则,重定向以“.html”结尾的旧URL。所需的规则可能如下所示:

RewriteEngine on
RewriteRule ^category/([^/.]+)/([^/.]+)/?$ index.php?category=$1&page=$2 [L]
RewriteRule ^category/([^/.]+)/([^/.]+).html$ category/$1/$2 [R=301,L]
测试和调整重定向时需要记住的一点是,重定向可能会缓存在浏览器中,这可能会导致测试时产生混乱的结果