Php htaccess的帮助
我想重定向这个:Php htaccess的帮助,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,我想重定向这个: foo.com/xxx 。。。为此: foo.com/somepage.php?id=xxx 我就是这样做的: Options +FollowSymLinks RewriteEngine On RewriteCond %{QUERY_STRING} ^$ RewriteRule ^([^/]+)$ http://foo.com/somepage.php?id=$1 [L] 现在的问题是,foo.com已经不起作用了。 我看不到foo.com,也看不到foo.com/ind
foo.com/xxx
。。。为此:
foo.com/somepage.php?id=xxx
我就是这样做的:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^([^/]+)$ http://foo.com/somepage.php?id=$1 [L]
现在的问题是,foo.com已经不起作用了。
我看不到foo.com,也看不到foo.com/index.php
救救我!:)
注意,foo.com/1在搜索引擎优化上是一个糟糕的举动。试试:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^(xxx=)$ /somepage.php?id=$1 [L]
当然,您没有明确指定xxx=是什么…1)您不需要重写第二行。它旨在确定规则何时适用,而不是请求的哪一部分
[编辑]除非存在重写条件,以便在查询字符串为空时应用此规则。如果是这样,那就没什么问题了
2) 我认为你需要在规则中包括第一条,如下所示:
RewriteRule ^/([^/]+)$ /somepage.php?id=$1 [L]
[编辑]您的版本和我的版本都将与index.php文件匹配,这可能解释了您的网站现在被破坏的原因。如果不想匹配php文件,可以添加另一个条件,如
RewriteCond ${REQUEST_URI} !^.*\.php$
3) 对于这样的规则,在末尾添加
/?
可能会有所帮助(在括号外,在$之前),以防他们查找foot.com/xxx/,如果您希望它看起来像一个目录,这很有意义。重写规则不应包含域名。但我知道foo.com是URI的一部分,这个问题非常模糊,比如http://bar.com/foo.com/xxx
…他指定[http://]foo.com/somepage.php?id=$1,但对于可移植性,您是对的。已编辑。但在.htaccess文件中,我不相信重写规则可以匹配域名。。。也许我错了。不管怎样,你所拥有的看起来是正确的,所以+1:-)是的,你可以。它通常用于从www域到非www域执行301操作,反之亦然。你必须小心,它的无限循环倾向于。你的第一点是+1。至于你的重写规则是否正确,谁知道呢,这个问题太模糊了。在传入请求的末尾,“=”是干什么的?@grossvogel:让我们更加困惑;-)@马蒂亚斯:你可以编辑你的问题来更新。不过这次我是为你做的:)
RewriteCond ${REQUEST_URI} !^.*\.php$