Php 重写URL不';无法在.htaccess文件中工作
我在使用.htaccess重写一些友好URL时遇到问题 根URL为 工作调用url为 htaccess文件和Post.php都位于子目录中 但我希望它如下所示: 如下所示的.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_
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。请给我一些建议。谢谢,我已经和服务器管理员联系过了,一切都很好。