我之前改变了我的.htaccess
文件,以便我的“子目录”(13/) 可以成为我用于主域的“目录”,方法是添加:
RewriteCond %{HTTP_HOST} ^(www.)?mydomain.com$
RewriteRule ^(/)?$ 13/index.php [L]
现在我想删除.php
扩展名和扩展名如index.php?eventid=3
to index/something
EDIT#1[where something
是那个的名字id
存储在数据库中]
我该怎么做呢?
以前,我曾在一些 PHP 框架中工作过,但他们已经有专门的url
文件。所以我从来没有想太多。但是这次我没有使用任何框架,所以我需要修改.htaccess
.
我环顾四周,但找不到任何可靠的博客/来源。
EDIT #2
我的子目录是public_html/13/
.
ie, www.mydomain.com
重定向到www.mydomain.com/13/
现在我想访问www.mydomain.com/13/events.php?eventid=1
as www.mydomain.com/events/44
RewriteRule ^([A-Za-z0-9\-]+)/([A-Za-z0-9\-]+)/([0-9]+)/?$ $1.php?$2=$3
上面的代码会重定向http://www.mydomain.com/index/eventid/3/ to http://www.mydomain.com/index.php?eventid=3
htaccess 非常灵活,一旦您理解了语法,创建上述内容的变体就非常容易。您将需要阅读可以使用的正则表达式,以及重写模块必须提供的无数选项。我的大多数重定向看起来都像上面这样,非常简单。
编辑:您正在寻找的一个示例是 Wordpress,它使用 slugs 来根据比 ID 号更语义的内容来识别页面。您必须对数据库中的项目名称进行 url 编码,并将其作为 slug 存储在数据库中,或者找到其他方法使其可在检索页面内容的数据库查询中使用。然后你的 htaccess 看起来像这样:
RewriteRule ^([A-Za-z0-9\-]+)/([A-Za-z0-9\-]+)/?$ $1.php?slug=$2
在 PHP 中,您需要创建 slugs 并将它们存储在数据库中,以便它们可以在查询中用作 ID。
EDIT2:尝试将整个 htaccess 文件更改为:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.yourdomain\.com$ [NC]
RewriteRule ^(.*)$ http://yourdomain.com/$1 [R=301,L]
RewriteRule ^([A-Za-z0-9\-]+)/([A-Za-z0-9\-]+)/([0-9]+)/?$ $1.php?$2=$3
</IfModule>
我已经测试过它并且有效。你的 htaccess 中的其他东西把它弄乱了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)