0

htaccessでこれを行おうとしていますが、正しく機能していません。

たとえば、リダイレクトする必要があります。

http://sub.domain.com/category/からhttp://www.domain.com/sub/category/http://sub.domain.com/category/movies/ からhttp://www.domain。 com / sub / lists / movies / http://sub.domain.com/category/movies/horror/ to http://www.domain.com/sub/listings/movies/horror/ http://sub.domain .com /events/からhttp://www.domain.com/sub/local/events/

これが私がやろうとしたことですが、/category/のようなもののいくつかはそれらすべてを捕らえています。末尾のスラッシュだけで、スラッシュなしで完全に一致させたいのですが、それだけです。サブフォルダやファイルではありません。htaccessファイルをsub.domain.comルートに配置しています。

Redirect 301 /category/ http://www.domain.com/sub/category/
Redirect 301 /category/movies/ http://www.domain.com/sub/listings/movies/
Redirect 301 /category/movies/horror/ http://www.domain.com/sub/listings/movies/horror/
Redirect 301 /events/ http://www.domain.com/sub/local/events/
4

1 に答える 1

2

次のようなmod_rewriteディレクティブを使用すると簡単になります。

RewriteEngine On

RewriteCond %{HTTP_HOST} ^sub\.domain\.com$
RewriteCond %{REQUEST_URI}   ^/category/?$   [NC]
RewriteRule .*   http://www.domain.com/sub/category/ [R=301,L]

RewriteCond %{HTTP_HOST} ^sub\.domain\.com$
RewriteCond %{REQUEST_URI}   ^/category/movies/?$   [NC]
RewriteRule .*    http://www.domain.com/sub/listings/movies/ [R=301,L]

RewriteCond %{HTTP_HOST} ^sub\.domain\.com$
RewriteCond %{REQUEST_URI}   ^/category/movies/horror/?$   [NC]
RewriteRule .*    http://www.domain.com/sub/listings/movies/horror/ [R=301,L]

RewriteCond %{HTTP_HOST} ^sub\.domain\.com$
RewriteCond %{REQUEST_URI}   ^/events/?$   [NC]
RewriteRule .*    http://www.domain.com/sub/local/events/ [R=301,L]

によると:

I want to do exact match with just a trailing slash and no slash and that's it. Not sub folders or files.

質問に記載されているように、URLを永続的にリダイレクトします

于 2013-01-08T04:16:11.797 に答える