Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.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_Url Rewriting - Fatal编程技术网

Php htaccess重写条件不工作

Php htaccess重写条件不工作,php,apache,.htaccess,mod-rewrite,url-rewriting,Php,Apache,.htaccess,Mod Rewrite,Url Rewriting,我正在我的网站的网址工作。我刚刚从中重写了URL http://www.website.com/index.php?url=some-text 到 为此,我使用以下.htaccess代码 Options +SymLinksIfOwnerMatch RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUES

我正在我的网站的网址工作。我刚刚从中重写了URL

http://www.website.com/index.php?url=some-text

为此,我使用以下.htaccess代码

Options +SymLinksIfOwnerMatch
RewriteEngine on

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]

现在,我想在URL中添加另一个变量
page number

http://www.website.com/index.php?url=some-text&page=1
我想把它改写成这样

http://www.website.com/some-text/1/
AND
http://www.website.com/some-text/1
我尝试了以下代码,但由于某种原因,它无法工作,它向我显示服务器错误

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)/(.*)$ index.php?url=$1&page=$2 [L,QSA]
RewriteRule ^(.*)/(.*)/$ index.php?url=$1&page=$2 [L,QSA]

你不需要两条新规则。只要一个带有可选的
/
就足够了。您的完整代码:

Options +SymLinksIfOwnerMatch -MultiViews
RewriteEngine on

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([^/]+)/([^/]+)/?$ index.php?url=$1&page=$2 [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([^/]+)/?$ index.php?url=$1 [L,QSA]

新代码中的另一个问题是,
RewriteCond
不适用于上一个
RewriteRule
,因为它们只适用于下一个
RewriteRule

您不需要两个新规则。只要一个带有可选的
/
就足够了。您的完整代码:

Options +SymLinksIfOwnerMatch -MultiViews
RewriteEngine on

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([^/]+)/([^/]+)/?$ index.php?url=$1&page=$2 [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([^/]+)/?$ index.php?url=$1 [L,QSA]


新代码中的另一个问题是,
RewriteCond
没有被应用于最后一个
RewriteRule
,因为它们只适用于下一个
RewriteRule

不,你可以反过来重写。从
http://www.website.com/some-text
http://www.website.com/index.php?url=some-文本
。当用户输入地址时,您总是从原始请求开始查看。注意。这不是服务器配置问题,我没有在这里发布任何服务器配置问题,我知道还有另一个网站可用于服务器配置解决方案,这是htaccess问题。htaccess问题不是服务器配置问题,而是编程问题。你怎么能说这是离题的?为什么这不会出现在stackoverflow上?stackoverflow上有很多htaccess问题。。现在让他们都离题了,我没时间讨论这个问题。但这是错误的,您不能脱离主题。我认为与mod_rewrite相关的问题与编程相关,就像它们与服务器配置相关一样。很多时候,人们正在为他们的web应用程序处理漂亮的URL方案、SEO等,并且在处理一些正则表达式问题时会遇到一些困难。不,你可以反过来重写。从
http://www.website.com/some-text
http://www.website.com/index.php?url=some-文本
。当用户输入地址时,您总是从原始请求开始查看。注意。这不是服务器配置问题,我没有在这里发布任何服务器配置问题,我知道还有另一个网站可用于服务器配置解决方案,这是htaccess问题。htaccess问题不是服务器配置问题,而是编程问题。你怎么能说这是离题的?为什么这不会出现在stackoverflow上?stackoverflow上有很多htaccess问题。。现在让他们都离题了,我没时间讨论这个问题。但这是错误的,您不能脱离主题。我认为与mod_rewrite相关的问题与编程相关,就像它们与服务器配置相关一样。很多时候,人们正在为他们的web应用程序处理漂亮的URL方案、SEO等,并且在处理一些正则表达式问题时遇到一些困难。这是可行的,但现在css和javascript文件没有应用。这是人们在切换到漂亮的URL后遇到的最常见的问题。解决方案很简单:确保您的js、css等始终使用绝对路径,即从
http://
/
@SumitBijvani开始:我也提供了正确的推理,说明了早期代码不起作用的原因。我想这里有些人无法回答自己的问题,这表明他们对这样一个可行且被接受的解决方案投了反对票。@hakre我的问题现在解决了,我的解释也很好,这就是为什么我得到了快速而正确的答案。为什么你认为这个问题不合适?@SumitBijvani:什么样的编程问题?您遇到服务器配置问题,希望了解有关服务器配置的更多信息。更特别的是,您希望了解有关正则表达式的更多信息。但你并没有要求,相反,你所说的都是代码,不起作用。那太粗糙了。您可能会发现用户只是给您代码,因为这对他们来说是一个很容易解决的问题,但是您不会太了解您正在处理的问题,并且只会接受再次提出下一个问题的培训。参见100.000s.htaccess问题,所有问题都很相似,没有一个答案可以解释?它可以工作,但现在css和javascript文件没有应用。这是人们在切换到pretty URL后遇到的最常见问题。解决方案很简单:确保您的js、css等始终使用绝对路径,即从
http://
/
@SumitBijvani开始:我也提供了正确的推理,说明了早期代码不起作用的原因。我想这里有些人无法回答自己的问题,这表明他们对这样一个可行且被接受的解决方案投了反对票。@hakre我的问题现在解决了,我的解释也很好,这就是为什么我得到了快速而正确的答案。为什么你认为这个问题不合适?@SumitBijvani:什么样的编程问题?您遇到服务器配置问题,希望了解有关服务器配置的更多信息。更特别的是,您希望了解有关正则表达式的更多信息。但你并没有要求,相反,你所说的都是代码,不起作用。那太粗糙了。您可能会发现用户只是给您代码,因为这对他们来说是一个很容易解决的问题,但是您不会太了解您正在处理的问题,并且只会接受再次提出下一个问题的培训。参见100.000s.htaccess问题,所有问题都很相似,没有一个答案可以解释?