【问题标题】:Url rewrite rules error: The requested URL was not found on this server网址重写规则错误:在此服务器上找不到请求的网址
【发布时间】:2021-12-24 21:44:31
【问题描述】:

我正在我的域文件夹中的.htaccess 文件中创建规则。

我在服务器上的网址是:

https://www.everyoneknows.com.my/customer/?loc=dashboard

我想将网址更改为:

https://www.everyoneknows.com.my/customer/dashboard/

在.htaccess文件中,我写的规则是:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^everyoneknows\.com\.my [OR,NC] 
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.everyoneknows.com.my/$1 [R,L]

##External redirect to /customer/dashboard url rules here.
RewriteCond %{QUERY_STRING} ^loc\=dashboard$
RewriteRule ^customer/$ https://www.everyoneknows.com.my/customer/dashboard/? [R=301,L]

并显示错误信息:

Not Found
The requested URL was not found on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

希望有人可以指导我如何更正我的重写 url 规则。谢谢。

原始结果:

更新 1

【问题讨论】:

    标签: php .htaccess url url-rewriting


    【解决方案1】:

    你需要一个旧 URL 到新 URL 的重定向规则和一个内部重写规则来处理漂亮的 URL:

    RewriteEngine On
    
    RewriteCond %{HTTP_HOST} ^everyoneknows\.com\.my [OR,NC] 
    RewriteCond %{SERVER_PORT} 80
    RewriteRule ^ https://www.everyoneknows.com.my%{REQUEST_URI} [R=301,NE,L]
    
    # external redirect from actual URL to pretty one
    RewriteCond %{THE_REQUEST} \s/+(customer)/\?loc=([^\s&]+) [NC]
    RewriteRule ^ /%1/%2/? [R=301,L,NE]
    
    # internal forward from pretty URL to actual one
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(customer)/([\w-]+)/?$ $1/?loc=$2 [L,QSA,NC]
    

    这假设customer/ 子目录中没有.htaccess。确保在测试此更改之前清除浏览器缓存。

    【讨论】:

    • 感谢您的回答。您的答案可以重定向页面,但为什么页面 css 和 jquery 不包括在内。您可以在我的问题上看到更新的 1。
    • 这是由于这些资源使用了相对 URL。要解决此问题,您可以将其添加到页面 HTML 的 <head> 标记下方:<base href="/" />
    • 这个标签我需要放哪个页面?放入.htaccess文件?
    • 正如我在评论中所写,它应该放在页面的 php/HTML 源代码中,就在 <head> 标记下方。
    • 好的,谢谢。所以在head标签之间,我加了everyoneknows.com.my" />,对吧?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-21
    • 1970-01-01
    • 2016-03-14
    相关资源
    最近更新 更多