这些URL是:
http://example.com/seller/samsung
http://example.com/seller/samsung/
我为这些类型的URL设置的.htaccess规则如下所示:RewriteRule ^seller/[^/]+/(.*)$ ./$1个我可以做些什么来使这两个URL转到同一个页面?
RewriteRule ^seller/[^/]+/(.*)$ ./$1
bfnvny8b1#
你可以在URL的末尾强制出现一个斜杠。您可以在.htaccess中使用以下命令:
.htaccess
RewriteCond %{REQUEST_URI} !(/$|\.) RewriteRule (.*) %{REQUEST_URI}/ [R=301,L]
字符串在测试之前,请确保清除缓存。编辑:
RewriteCond %{REQUEST_URI} /+[^\.]+$ RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]
型上面的是做什么的?所以这个条件会抓取你的目录,比如/samsung,并会检查它的末尾是否有一个/。如果没有,它将抓取URL末尾的目录(再次是/samsung,并在其上添加/。它将使用301重定向来完成此操作,并将您留给/samsung/。关于L标志(摘自官方文档):[L]标志使mod_rewrite停止处理规则集。在大多数上下文中,这意味着如果规则匹配,则不会处理进一步的规则。这与Perl中的最后一个命令或C中的break命令相对应。使用此标志指示应立即应用当前规则而不考虑其他规则。
/samsung
/
301
/samsung/
L
wvyml7n52#
将此代码放入您网站根目录下的**.htaccess**文件中。
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !(.*)/$ RewriteRule ^(.*[^/])$ %{REQUEST_URI}/ [L,R=301]
字符串RewriteEngine打开:启用Apache mod_rewrite模块进行URL重写。重写%{REQUEST_FILENAME}!-f:此条件检查请求的URL是否未Map到现有文件。重写条件%{REQUEST_URI}!(.)/$:此条件检查请求的URL是否还没有结尾斜杠。RewriteRule ^(.[^/])$ %{REQUEST_URI}/ [L,R=301]:此规则捕获没有尾随斜杠的URL,并使用301(永久)重定向将它们重定向到带有尾随斜杠的同一URL。[L]标志停止进一步处理,并且[R=301]标志指示永久重定向。此规则确保每当用户访问没有尾随斜杠的URL时,他们将被重定向到带有尾随斜杠的同一URL,从而消除404错误。请记住,在将其部署到您的实时网站之前,请在开发/登台环境中进行测试,以确保其按预期工作。此外,确保在Apache服务器上启用了mod_rewrite模块,以便使其工作。
2条答案
按热度按时间bfnvny8b1#
你可以在URL的末尾强制出现一个斜杠。您可以在
.htaccess
中使用以下命令:字符串
在测试之前,请确保清除缓存。
编辑:
型
上面的是做什么的?所以这个条件会抓取你的目录,比如
/samsung
,并会检查它的末尾是否有一个/
。如果没有,它将抓取URL末尾的目录(再次是/samsung
,并在其上添加/
。它将使用301
重定向来完成此操作,并将您留给/samsung/
。关于
L
标志(摘自官方文档):[L]标志使mod_rewrite停止处理规则集。在大多数上下文中,这意味着如果规则匹配,则不会处理进一步的规则。这与Perl中的最后一个命令或C中的break命令相对应。使用此标志指示应立即应用当前规则而不考虑其他规则。
wvyml7n52#
将此代码放入您网站根目录下的**.htaccess**文件中。
字符串
RewriteEngine打开:启用Apache mod_rewrite模块进行URL重写。
重写%{REQUEST_FILENAME}!-f:此条件检查请求的URL是否未Map到现有文件。
重写条件%{REQUEST_URI}!(.)/$:此条件检查请求的URL是否还没有结尾斜杠。
RewriteRule ^(.[^/])$ %{REQUEST_URI}/ [L,R=301]:此规则捕获没有尾随斜杠的URL,并使用301(永久)重定向将它们重定向到带有尾随斜杠的同一URL。[L]标志停止进一步处理,并且[R=301]标志指示永久重定向。
此规则确保每当用户访问没有尾随斜杠的URL时,他们将被重定向到带有尾随斜杠的同一URL,从而消除404错误。
请记住,在将其部署到您的实时网站之前,请在开发/登台环境中进行测试,以确保其按预期工作。此外,确保在Apache服务器上启用了mod_rewrite模块,以便使其工作。