在.htaccess中重写有问题,包括404等

Having Issues With Rewrites In .htaccess including 404 & more

提问人:Coderz 提问时间:11/15/2023 最后编辑:RavinderSingh13Coderz 更新时间:11/15/2023 访问量:18

问:

放轻松,我是更改 .htaccess 文件的新手。我有以下.htaccess文件:

RewriteEngine On
RewriteBase /

# Exclude rewriting for specific file types and existing files
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\.(css|js|png|jpg|gif)$

# Redirections
RewriteRule ^search$ search.php [L]
RewriteRule ^our-story$ our-story.html [L]
RewriteRule ^blog$ blog.php
RewriteRule ^contact$ contact.html
RewriteRule ^faq$ faq.html
RewriteRule ^pricing$ pricing.html
RewriteRule ^register$ register.php
RewriteRule ^login$ login.php
RewriteRule ^dashboard$ dashboard.php
RewriteRule ^404$ 404.html

# 404 Page
ErrorDocument 404 /404.html

问题和问题如下。

  1. 当 404 不在主目录中时,404 不起作用,示例 https://link.com/fakelink 将正确转到 404,但 https://link.com/direct/fakelink 不会正确转到 404。
  2. 有没有更好的方法来处理重定向,而不必像我目前所做的那样手动执行每个重定向?

另一件事我不知道该怎么做,我有一个看起来像(https://link.com/list.php?url=city-location/listing-name)的 php 文件,我希望它重写 https://link.com/city-location/listing-name 我该如何去做?

感谢所有的帮助!

apache .htaccess

评论

0赞 CBroe 11/15/2023
“另一件事” - 为此,我想向你推荐参考:mod_rewrite,URL重写和“漂亮的链接”解释 - 阅读一些基础知识,然后进行尝试。
0赞 CBroe 11/15/2023
2. 您可以将这些规则中的多个合并为一个,并且文件相同。RewriteRule ^(search|blog|...)$ $1.php [L].html
0赞 CBroe 11/15/2023
RewriteConds 只影响紧随其后的规则,因此在这里使用它们的方式意义不大。它们仅影响规则,与现有文件既不匹配,也不具有任何这些后缀。^search$
0赞 CBroe 11/15/2023
1. 不确定是什么原因造成的,但我怀疑这可能与最后一条规则有关。尝试将其删除。(应该没有必要为你的错误文档设置一个“漂亮”的 URL,没有人应该首先故意请求,对吧?RewriteRule ^404$ 404.html/404

答: 暂无答案