Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php htaccess的帮助_Php_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

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$