【问题标题】:Rewrite URL htaccess using GET method使用 GET 方法重写 URL htaccess
【发布时间】:2019-12-06 13:55:37
【问题描述】:

我有一个页面名称 detail.php 处理来自 GET 方法的变量,显示的 URL 将类似于 domain.com/detail.php?v=tEDdwXC2dkq,但我想将其更改为domain.com/detail?v=tEDdwXC2dkq.

.htaccess

RewriteEngine On
RewriteRule ^domain.com/detail.php?v=(.+)$ domain.com/detail?v=$1

但它没有用。 有什么我错过的吗?

【问题讨论】:

    标签: php .htaccess mod-rewrite url-rewriting


    【解决方案1】:

    使用此代码。

    RewriteEngine On
    ReWriteRule ^detail/([a-zA-Z]+)$ detail.php?v=$1
    

    【讨论】:

    • 它适用于 URL,现在我面临 CSS URL 损坏的新问题,有什么解决方案吗?
    • 是的,css文件和js和图片文件也可能坏了
    • 有解决办法吗?
    • 尝试使用../lib/css/style.css
    • 尝试将css的完整url与域名一起放置。喜欢。 domain.com/lib/css/style.css
    【解决方案2】:

    你有 RewriteRule 的参数。您想将 /detail?v=whatever 映射到 /detail.php?v=whatever

    RewriteEngine On
    RewriteRule ^detail$ /detail.php [QSA,L]
    

    QSA - 查询字符串追加。有了这个标志,查询字符串是什么无关紧要,它总是附加到detail.php。这使它更加灵活,因为您不必使用 .htaccess 来添加或删除查询字符串参数。

    【讨论】:

    • 哦,我的错,但我已将代码反转为 RewriteRule ^detail/v=(.+)$ detail.php?v=$1 [QSA,L],但我面临 CSS URL 损坏的新问题。
    • 什么是 CSS URL?你还有其他 RewriteRule 指令吗?
    • 我有像 lib/css/style.css 这样的 CSS URL,我尝试使用像 www.domain.com/lib/css/style.css 这样的完整 URL,但它没有用。
    • apache 错误日志中是否有任何错误,/lib/css/style.css 的服务器响应是什么?
    • 另外,看看你对各种答案的回答,你的 RewriteRule 的当前形式是什么?看起来您已经在这里尝试了所有变体,重要的是要知道哪些变体已经到位。例如 ^domain/(.+)$ 会将所有请求(包括 css、js 和图像)映射到详细信息。而 ^detail/([a-zA-Z]+)$ 和 ^detail$ 不会
    【解决方案3】:

    试试这个

    RewriteRule ^domain/(.+)$ /detail?v=$1.
    

    如果不行,可以参考这个链接,可能有帮助=)
    https://www.smashingmagazine.com/2011/11/introduction-to-url-rewriting/

    【讨论】:

    • 它可以工作,但是找不到 css 文件:(我应该为 CSS 写完整的URL i> 文件?例如:lib/css/style.csswww.domain.com/lib/css/style.css?
    • 你不要把你的css文件放在域中,你应该把它包含在detail.php文件中。没有人将 css 文件放在域中。
    • 我把css放在lib文件夹根/lib/cs/这里的css文件中
    猜你喜欢
    • 1970-01-01
    • 2011-05-07
    • 2014-05-16
    • 1970-01-01
    • 2015-09-18
    • 2011-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多