1

你好我有以下关于mod_rewrite的问题:

我已经建立了一个名为example.php

现在我仍在寻找以下问题的重写:

由于不同的语言但页面的内容相同,example.php我希望在用户输入时进行重写site.com/beispiel.php

example德语中的同一个词是什么。所以只有一页。但虚构的网址 site.com/beispiel.php将是相同的内容。

所以如果有人知道如何解决这个问题,我真的很感激。多谢。

4

2 回答 2

0

重定向和内部重定向是两个不同的东西。

带有代码 302 或 301 的 HTTP 重定向意味着多个 HTTP 请求,用户将在最后看到他已被重定向到 /example.php。内部重定向意味着在服务器上为请求的文件 A 提供一个文件 B,而用户不知道它。

内部重定向不需要 mod-rewrite 的规则。AliasAliasMatch指令可用于将一些请求的文件映射到真实文件。

Alias /beispiel.php /path/to/my/docroot/example.php

通过使用 Redirect 和 RedirectMatch 指令,也可以在没有 mod_rewrite 的情况下执行外部重定向。

现在您还可以使用 mod_rewrite 来执行这两种类型的重定向(内部和外部)。

# internal alias
RewriteRule ^beispiel.php$ /path/to/my/docroot/example.php [L]
# Or external redirection, with a R tag
RewriteRule ^beispiel.php$ example.php [L, NC, R=302]

使用外部重定向 qlways 首先尝试一些处理 302 重定向的 rewriteRiles。当它工作时,您可以使用 301 重定向作为浏览器存储 301 结果,并且在重新启动之前不再询问。

如果你有大量的重定向要执行并且你没有被 .htaccess 文件卡住(即你可以编辑真正的 apache 配置文件),你可以看看RewriteMap来加速你的 rewriteRules。

于 2012-07-24T16:05:23.840 回答
0

我在想:

如果您使用谷歌翻译器,如 使用谷歌翻译器 API 翻译 PHP $string中所示

然后从 PHP 重定向到

www.yoursite.com/translate.php?translated_language=keyword_from_script

然后使用带有该参数的最后一个答案中的 mod_rewrite ,它应该可以工作吗?

于 2012-07-24T14:45:27.370 回答