【问题标题】:Pass a clean parameter through URL通过 URL 传递一个干净的参数
【发布时间】:2014-01-15 15:57:37
【问题描述】:

我使用的是 localhost,在我的 index.php 页面中我有以下代码:

<? echo 'LANG IS '.$_GET['lang']; ?>

当我在 URL 上键入 localhost 时,显然它只显示 LANG IS,但如果我键入 localhost/en,我会看到 404 Not Found 消息。我必须输入 localhost?lang=en 才能显示我的 index.php 代码。我想输入 localhost/en 而不是 localhost?lang=en 并得到相同的结果。

我使用的是 Apache2,并且我启用了 mod_rewrite。我还有一个包含此代码的 .htaccess 文件(我已经更改并测试了很多次):

RewriteEngine on
RewriteRule ^/([a-zA-Z0-9]+|)/?$ index.php?lang=$1 [L,QSA]

我已经阅读 .htaccess 和 clean url 好几天了,但我无法完成这项工作。有任何想法吗?非常感谢您。

【问题讨论】:

    标签: php apache .htaccess mod-rewrite clean-urls


    【解决方案1】:

    很可能您的 .htaccess 甚至没有启用。 先验证

    要检查您的 .htaccess 是否已启用,请尝试将相同的随机/垃圾文本放在您的 .htaccess 之上,看看它是否会生成 500(内部服务器)错误?

    如果它未启用,那么您将需要 AllowOverride All 行中的 &lt;Directory "/var/www/>` 部分。

    一旦启用,以下规则应该对您有用:

    RewriteEngine on
    RewriteRule ^(\w+)/?$ index.php?lang=$1 [L,QSA]
    

    【讨论】:

    • 你说得对,我启用了 mod_rewrite 但我的 .htaccess 无法正常工作。我必须在哪里写 AllowOverride All?在 apache2.conf 中?
    • 是的,这是在 &lt;Directory "/var/www/&gt; 部分的 apache2.conf 中完成的。这也需要重启 apache。
    • 现在我在 apache2.conf 部分有这个:&lt;Directory /var/www/&gt; Options Indexes FollowSymLinks AllowOverride All Require all granted &lt;/Directory&gt;
    • 看起来不错,重新启动 Apache 并重新运行 .htaccess 验证。
    【解决方案2】:

    尝试去掉模式中的前导斜杠:

    RewriteEngine on
    RewriteRule ^([a-zA-Z0-9]+|)/?$ index.php?lang=$1 [L,QSA]
    

    通过 htaccess 文件中的规则发送的 URI 去除了前导斜杠,因此模式需要省略它。

    【讨论】:

    • 非常感谢,但是我做到了,之后我重新启动了所有,但是当我再次输入 localhost/en 时,还是一样的 404 页面。
    • @user3198727 是您文档根目录中的 htaccess 文件吗?
    • 是的,我使用的是 Kubuntu,我在 /var/www/ 中有 .htaccess,index.php 也在哪里。
    【解决方案3】:

    问题可能出在正则表达式中。 试试这个:

    RewriteEngine on
    RewriteRule ^/([a-zA-Z0-9]+)/ /index.php?lang=$1 [L,QSA]
    

    【讨论】:

    • 谢谢,我粘贴了你的代码,但还是同样的问题: Not Found The requested URL /en/ was not found on this server.
    猜你喜欢
    • 2017-04-05
    • 2015-05-28
    • 2018-11-29
    • 1970-01-01
    • 1970-01-01
    • 2014-05-22
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    相关资源
    最近更新 更多