.htaccess - joomla htaccess 如何识别特定别名的 get 方法是什么?

标签 .htaccess joomla alias

我正在开发一个支持 SEF url 的网站。我使用 PHP 作为服务器端语言。我知道 htaccess 基本代码如何使用它。但问题是,如果我想重写一个 php get 链接,我必须像这样将每个链接都放在 htaccess 上。

RewriteRule ^sign-in$ index.php?view=signin
RewriteRule ^register$ index.php?view=register
RewriteRule ^jobs$ index.php?id=2 

是否有任何可能的方法来使用 htaccess 和 url 特定别名来自动化 url,而不是手动添加重写规则?像joomla的东西?我试图了解 joomla htaccess 如何与特定别名连接。但我仍然无法理解它是如何工作的。我无法理解 joomla htaccess 如何与文章别名建立关系。请帮忙。提前致谢。

最佳答案

如果 id 的外观与 view 的外观没有任何区别(在您的示例中,register是一个 viewjobs 是一个 id=2),那么你必须单独做一个或另一个:

要“自动化” View ,您可以尝试这样做:

RewriteEngine On

# all id's here:
RewriteRule ^jobs$ index.php?id=2 [L] 
RewriteRule ^something-else$ index.php?id=3 [L]
RewriteRule ^another$ index.php?id=4 [L]

# this will do all views
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?view=$1 [L]

编辑:如果您需要通过一组外部别名进行这些映射,您需要查看 RewriteMap directive .您需要访问服务器或虚拟主机配置才能设置 map ,但您的规则可以保留在 htaccess 文件中。

假设您有一个名为“joomla_maps.txt”的文本文件,如下所示:

jobs id=2
another id=3
sign-in view=sign-in
register view=register

等...

您可以通过在 RewriteMap 中设置它来使用该映射(在虚拟主机/服务器配置中)

RewriteMap joomla txt:/path/to/joomla_maps.txt

然后在您的 htaccess 中:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?${joomla:$1} [L]

查看 RewriteMap 文档以获得其他类型映射的一些示例,包括执行脚本或使用 dbm HashMap 。

关于.htaccess - joomla htaccess 如何识别特定别名的 get 方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11746095/

相关文章:

php - 301重定向URL也被重写

php - Joomla 安装期间无法连接到 mySQL 数据库

alias - 每个用户的伪造索引:别名不好吗?

javascript - 仅对某些 css 和 javascript 文件利用浏览器缓存

.htaccess - URL 重写在 Wamp 服务器上不起作用

php - 将完整的 wordpress 站点转换为 HTTPS

joomla - Joomla 3.1 中的菜单垃圾在哪里?

php - MySql 中的批量导入查询 - joomla

mysql - (MS Access MySQL) FROM 带别名的子查询

C++ 编译器错误 c4430 "c++ doesnt support default int"