这是我想要做的:
例如: http://subdomain-with-dashes.rotarytest.de/a-directory/an-image.png 重写后应该是 http://rotarytest.de/subdomain_with_dashes/a-directory/an-image.png
以下是我现在的情况,请参阅代码中的注释
RewriteEngine on
# replace dashes with underscores
# this works, but only for the last dash
RewriteCond %{HTTP_HOST} ^(.*)-(.*)$
RewriteRule ^(.*)$ http://%1_%2/$1 [L,R=301]
# if a subdomain is called, redirect to subdirectory
# this code works but only when i have one dash in my subdomain
RewriteCond %{HTTP_HOST} ^(.*)\.rotarytest\.de$
RewriteRule ^(.*)$ http://rotarytest.de/%1%{REQUEST_URI} [L,R=301]
我尝试了几乎所有在stackoverflow或网络上找到的解决方案,但没有一个能正常工作。
有人可以帮帮我吗?提前谢谢。
答案 0 :(得分:0)
您必须允许浏览器不断重定向以删除破折号。如果您不需要在URI中使用下划线替换短划线,那么您不需要前两个规则,它们不会应用于主机名。用这个替换前两个规则:
RewriteCond %{HTTP_HOST} ^(.*)-(.*)$
RewriteRule ^(.*)$ http://%1_%2/$1 [L,R=301]