.htaccess 在特定 url 之后重写条件
.htaccess rewrite conditon after spesific url
我使用的是 apache2 和 laravel,所以我将这段代码放在 /public
文件夹 .htaccess
中
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ^/?(blog|dont/you|brave-to|fvck|me)$
RewriteRule ^(.*)$ http://%{HTTP_HOST}// [R=301,L]
上面的代码只有在 url 特定于 /url
时才有效
一个例子https://mywebsite.com/blog
或https://mywebsite.com/dont/you
因此 RewriteRule ^(.*)$ http://%{HTTP_HOST}// [R=301,L]
将重定向到 tailling slash
https://mywebsite.com/blog/
也会如此
但是当我想添加动态 slug 时这不起作用
link test
我的意思是,我需要添加尾部斜线 after end of slug
,然后是 blog
一个例子,如果 url 像这样 https://mywebsite.com/blog/hey-this-dynamic-slug
这应该是 https://mywebsite.com/blog/hey-this-dynamic-slug/
我必须添加这个条件和规则
RewriteCond %{THE_REQUEST} !\s/(?:blog/)\S+\s [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}// [R=301,L]
是的,确实工作正常
https://htaccess.madewithlove.com?share=47516f5c-b5c6-49e9-87fa-3b83cec864fc
但这将强制所有 /
如您所见,当我尝试使用随机文本更改 blog
时,此规则强制添加 /
我只需要为特定 url 和特定 url
之后强制添加尾斜线
好的所以我得到它使用这个条件
RewriteEngine On
// check if not a file
RewriteCond %{REQUEST_FILENAME} !-f
// check if there start with blog/ and not end with /
RewriteCond %{REQUEST_URI} ^/(blog/.*)[^/]$ [OR]
// OR check if contain specific words
RewriteCond %{REQUEST_URI} ^/(blog|dont/you|brave-to|fvck|me)$
// the do the rule
RewriteRule ^(.*)$ http://%{HTTP_HOST}// [R=301,L]
这是一个example
我使用的是 apache2 和 laravel,所以我将这段代码放在 /public
文件夹 .htaccess
中
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ^/?(blog|dont/you|brave-to|fvck|me)$
RewriteRule ^(.*)$ http://%{HTTP_HOST}// [R=301,L]
上面的代码只有在 url 特定于 /url
一个例子https://mywebsite.com/blog
或https://mywebsite.com/dont/you
因此 RewriteRule ^(.*)$ http://%{HTTP_HOST}// [R=301,L]
将重定向到 tailling slash
https://mywebsite.com/blog/
但是当我想添加动态 slug 时这不起作用
我的意思是,我需要添加尾部斜线 after end of slug
,然后是 blog
一个例子,如果 url 像这样 https://mywebsite.com/blog/hey-this-dynamic-slug
这应该是 https://mywebsite.com/blog/hey-this-dynamic-slug/
我必须添加这个条件和规则
RewriteCond %{THE_REQUEST} !\s/(?:blog/)\S+\s [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}// [R=301,L]
是的,确实工作正常
https://htaccess.madewithlove.com?share=47516f5c-b5c6-49e9-87fa-3b83cec864fc
但这将强制所有 /
如您所见,当我尝试使用随机文本更改 blog
时,此规则强制添加 /
我只需要为特定 url 和特定 url
之后强制添加尾斜线好的所以我得到它使用这个条件
RewriteEngine On
// check if not a file
RewriteCond %{REQUEST_FILENAME} !-f
// check if there start with blog/ and not end with /
RewriteCond %{REQUEST_URI} ^/(blog/.*)[^/]$ [OR]
// OR check if contain specific words
RewriteCond %{REQUEST_URI} ^/(blog|dont/you|brave-to|fvck|me)$
// the do the rule
RewriteRule ^(.*)$ http://%{HTTP_HOST}// [R=301,L]
这是一个example