Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.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 重写URL不';无法在.htaccess文件中工作_Php_Apache_.htaccess_Mod Rewrite_Url Rewriting - Fatal编程技术网

Php 重写URL不';无法在.htaccess文件中工作

Php 重写URL不';无法在.htaccess文件中工作,php,apache,.htaccess,mod-rewrite,url-rewriting,Php,Apache,.htaccess,Mod Rewrite,Url Rewriting,我在使用.htaccess重写一些友好URL时遇到问题 根URL为 工作调用url为 htaccess文件和Post.php都位于子目录中 但我希望它如下所示: 如下所示的.htaccess配置: DirectoryIndex index.php Options All -Indexes #ErrorDocument 404 /404.php Options +FollowSymLinks -MultiViews RewriteEngine On RewriteCond %{HTTP_

我在使用.htaccess重写一些友好URL时遇到问题

根URL为

工作调用url为

htaccess文件和Post.php都位于子目录中

但我希望它如下所示:

如下所示的.htaccess配置:

DirectoryIndex index.php

Options All -Indexes

#ErrorDocument 404 /404.php

Options +FollowSymLinks -MultiViews
RewriteEngine On

RewriteCond %{HTTP_HOST} !^www.example.com$ [NC]

RewriteRule ^job/kuantan/([0-9]+)  /Post.php?id=$1 [L,QSA, NC]
但是,一旦我部署了上面的.htaccess配置文件,它也会提示500条内部错误消息


.htaccess配置中是否缺少或错误?请提供建议,如果有人能帮忙,我将不胜感激。谢谢。

您可以在
/my/.htaccess
中获取此代码:

DirectoryIndex index.php
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /my/

RewriteCond %{THE_REQUEST} /Post\.php [NC]
RewriteRule ^ job/kuantan [R=302,L,NE]

RewriteRule ^job/kuantan/?$ Post.php [L,NC]

查询字符串是自动带出的,因此不需要在规则中捕获它。

您只需要一个规则:

RewriteRule ^/my/job/kuantan/$ /my/Post.php

默认情况下,查询字符串被带入。

假设.htaccess和Post.php位于子目录
/my/

DirectoryIndex index.php
Options All -Indexes
#ErrorDocument 404 /404.php
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.example.com$ [NC]
RewriteRule ^job/kuantan/([0-9]+)$  Post.php?id=$1 [L,QSA,NC]

删除
[]
之间的所有空格。将
/Post.php?id=1
更改为
Post.php?id=$1

您的规则已被注释掉,请尝试从
\RewriteRule^job/kuantan/([0-9]+)/Post.php?id=$1[L,QSA,NC]
Hi IkoTiskashi,抱歉,我删除了注释。它也不起作用。请指教!谢谢阿努巴瓦的回答。我按照你的指示试过了,但失败了。相反,我得到了“404 Not Found”->请求的URL/my/job/kuantan/Post.php在此服务器上找不到。请指教!另外,在您给出的重写规则上,我不应该需要一个“([0-9]+)”和“Post.php?id=$1”吗?请指教!你好,阿努巴瓦,谢谢你的更新。我遵循了你最新的指导方针,但也失败了。相反,我得到了“404未找到-此服务器上未找到请求的URL/my/Post”。请给出建议。谢谢你的回复。顺便说一句,我按照你的指示做了。但它又失败了。->用404未找到错误消息重写规则^/my/job/kuantan/$/my/OrangSini_JobPosting.php[L,NC]。请给出建议。您确定(1)存在吗?(2)在此规则之前或之后没有其他重写规则更改它。嗨,bobdye,很抱歉提到了错误的文件名(这是另一个示例测试)。事实上,这是存在的。请指教。嗨,奇怪。可以肯定的是,在第一个URL的末尾真的有斜杠吗?规则将匹配,但不匹配。Hi IkoTikashi,感谢您及时的回答。实际上,.htaccess文件和Post.php都位于子目录中。。按照您的指导原则,它仍然失败,并收到以下错误消息“404未找到-此服务器上未找到请求的URL/my/job/kuantan/”。此外,输入的url为“”。。。隐马尔可夫模型。。奇怪,我不知道这里出了什么问题。请给出建议。如果您不需要它,请注释掉
RewriteCond%{HTTP_HOST}^www.example.com$[NC]
,还要确保实际安装了
mod_rewrite
。Hi IkoTiskashi,感谢您的回复。事实上,我已经注释掉了“RewriteCond%{HTTP_HOST}!^www.example.com$[NC]”,根据系统管理员的指示,服务器默认安装了mod_rewrite。请给我一些建议。谢谢,我已经和服务器管理员联系过了,一切都很好。