2

我有一个看起来像这样的菜单项:

mysite.com/index.php?option=blog&view=index 

我希望它变成这样:

blog.mysite.com

可以做到吗?

谢谢!

编辑:

@Daan 该规则给了我一个 500 内部服务器错误。我正在使用 joomla cms,默认的 htaccess 看起来像这样

Options +FollowSymLinks

RewriteEngine On

RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule .* index.php [F]

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_URI} !^/index\.php
RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|vcf|raw))$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]

我的网站在付费托管服务器上,我无权访问任何 apache 文件夹或模块。

4

1 回答 1

2

试试这个:

更新

RewriteCond %{QUERY_STRING} ^option=(.+)&view=index$
RewriteRule ^index\.php$ http://%1.mysite.com? [L]

逐行:

  1. 您使用第一行中的 () 来捕获 option= 之后的值

  2. url 必须以 index.php 开头,%1 指的是在第 1 行捕获的值,?最后确保没有附加旧的查询字符串,[L] 停止执行
    .htacces的其余部分

在http://httpd.apache.org/docs/current/mod/mod_rewrite.html上阅读更多信息

于 2012-11-22T17:46:50.787 回答