Mod重写动态路径(无查询)


Mod Rewrite Dynamic Paths (no query)

我正在尝试以的形式创建指向旧网站内容的重定向

domain.com/fiction/UNIQUE/booksub.domain.com/fiction/UNIQUE/book

并非domain.com上的所有页面都应重定向到sub.domain.com。只是那些包含/fiction/的。CCD_ 6是动态生成的CCD_。

因此,检查domain.com/fiction/的存在并替换为sub.domain.com/fiction/,然后添加字符串/UNIQUE/book的其余部分应该很简单。

我看过Mod Rewrite和QUERY_STRING的帖子,但我的理解有限,这似乎只适用于?查询样式动态生成的页面。

谢谢你的帮助。

您可以将以下代码用于您的htaccess文件:

RewriteCond %{HTTP_HOST} ^.+$
RewriteRule ^(fiction/.*)$ http://sub.%{HTTP_HOST}/$1 [L,R=301]

http://domain.com/fiction/UNIQUE/book将被重定向到http://sub.domain.com/fiction/UNIQUE/bookhttp://domain.com/scifi/UNIQUE/book不会被修改。

您的子域是静态的还是依赖于UNIQUE标识符?

如果它是静态的,以下应该做的技巧:

# Turn on rewrite engine
RewriteEngine On
# Do not rewrite real files
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*/ - [L]
# Your important rule goes here; Accepted as unique ids are alphanumeric strings
RewriteRule fiction/([A-Za-z0-9]*)/book http://sub.domain.com/fiction/$1/book 

有关更多信息,请参阅apache文档。