【问题标题】:Htaccess rewrite rule redirected but server not processhHtaccess 重写规则重定向但服务器未处理
【发布时间】:2022-01-08 17:45:26
【问题描述】:

我希望我的服务器根据 URL example.com/myapp/my-technical-effort 读取此页面 example.com/myapp.php?p=11

我已经尝试过这个.htaccess 规则:

RewriteEngine On 
RewriteBase / 
RewriteCond %{REQUEST_URI} ^/myapp\.php$ 
RewriteCond %{QUERY_STRING} ^p=11 
RewriteRule ^(.*)$ example.com/myapp/my-technical-effort [QSD,R=301,L]

它重定向到新 URL,但服务器在此服务器上显示“找不到页面”并出现 404 错误。

您能否帮我重写规则,以便服务器可以针对 URL example.com/myapp/my-technical-effort 提供页面 example.com/myapp.php?p=11

我目前的.htaccess如下:

<IfModule mod_headers.c>
  Header always append X-Frame-Options ALLOWALL
</IfModule>
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{HTTPS} !=on
  RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
  Header always set Content-Security-Policy "upgrade-insecure-requests;"
</IfModule>

谁能帮帮我?

【问题讨论】:

    标签: apache .htaccess mod-rewrite


    【解决方案1】:

    您的实施方式是错误的。试试这种方式:

    RewriteEngine on
    RewriteRule ^/?myapp/my-technical-effort$ /myapp.php?p=11 [QSD,L]
    

    您需要根据实际即将到来的请求来实施重写规则。这些应该在内部重写,所以必须匹配。

    这假设您要重写的实际请求是/myapp/my-technical-effort(您的问题有点含糊),并且/myapp.php?p=11 是您要查询的内部资源。


    更新:

    您在下面的评论表明您实际上正在寻找一种将“旧”网址重定向到新网址的解决方案。确实可以将其与上述重写结合起来:

    RewriteEngine on
    
    RewriteCond %{QUERY_STRING} ^p=11$
    RewriteRule ^/myapp\.php$ /myapp/my-technical-effort [QSD,R=301,L]
    
    RewriteRule ^/?myapp/my-technical-effort$ /myapp.php?p=11 [QSD,L]
    

    这会将所有请求“旧”网址 (https://example.com/myapp.php?p=11) 的客户端重定向到“新”网址 (https://example.com//myapp/my-technical-effort)。它会在内部将传入的请求重写为能够响应请求的实际脚本(/myapp.php)。

    【讨论】:

    • QSD 标志不会造成伤害,但在这里是多余的。
    • 您好,感谢您的回复,您的解决方案出错了。 htaccess.madewithlove.com?share=8cd30692-d65d-4150-8361-e74dc63… 问题是我的网址是 example.com/myapp.php?p=11 我想重写它应该是这样的 example.com/myapp/my-technical-effort 意味着我想将查询字符串转换为干净的 url。你能帮忙吗?
    • 好吧,您在评论中链接的测试中的规则是因为您添加了一个没有意义的条件。您在那里测试的代码将永远匹配。
    • 我对问题添加了更新:额外的外部重定向。我希望这就是你真正要问的。
    猜你喜欢
    • 1970-01-01
    • 2020-11-01
    • 2016-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多