感谢您的帮助,我可以创建一个.htaccess,将动态链接重写为静态链接。现在我想将该解决方案扩展到整个站点,以便根据$ _get变量加载准确的模块。然后感谢.htaccess我应该能够做出友善的链接。唯一的问题是...它不工作...它显示我一个错误:使用htaccess创建seo友好链接时出现403错误
403禁止 您没有权限访问此文档。
我使用这个脚本重写链接:
Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /mod1/
# external redirect from actual URL to pretty one
RewriteCond %{THE_REQUEST} \s/mod1/index.php\?module=([^\s&]+) [NC]
RewriteRule^/mod1/%1? [R=302,L]
# internal forward from pretty URL to actual one
RewriteRule ^mod1/([^\s&]+)?$ mod1/index.php?module=$1 [L,QSA]
现在我使用的文件夹MOD1但通常我想有就有一个域名,以便它具有:
www.domain.com/index.php?module=create_list
被重定向到:
www.domain.com/create_list
我在网上发现了一个信息,我应该将目标文件(这是我的例子中的索引)的权限更改为755,但在我的情况下不起作用。 该脚本的另一个秘密是第一部分似乎工作,但我不知道为什么它总是在最后给出url“/”,即使我没有在规则中定义它。
任何帮助表示赞赏。
编辑:
我设法解决与商场更改脚本问题:
Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /mod1/
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
# external redirect from actual URL to pretty one
RewriteCond %{THE_REQUEST} \s/mod1/index.php\?module=([^\s&]+) [NC]
RewriteRule^%1.html? [R=302,L]
# internal forward from pretty URL to actual one
RewriteRule ^([^/]+).html?$ index.php?module=$1 [L,QSA]
据工作poperly。但我仍然不明白几件事情。首先,如果我从删除#:
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
的[L,QSA]起作用但permament [R = 302,L]不,我明白,这两个线是用于与该PHP中使用的文件文件,他们解决了路径问题。但是,如何让他们一起工作,永久重定向302?
第二件事是我需要在静态链接的末尾添加.html,这不是我计划的一部分。是否有可能使它没有.html扩展名的工作?
嘿,谢谢你的答案,但遗憾的是它并没有解决我的问题,因为现在它不重写的URL。另外我有一个url ..mod1/index.php?module = create_list,但它不显示正确的内容。这似乎是PHP不接收GET变量。 – user1857756 2014-10-19 20:59:02
我刚刚编辑了我的答案。为什么你需要将/mod1/index.php?module = something'重定向到'/ mod1/something'? – 2014-10-20 05:57:07
我想将动态链接重定向到静态以避免重复的内容,以防有人使用这种方式访问它 - 至少这是我的假设。这是错的吗?我用你的代码,不幸的是,它仍然没有解决问题仍然链接:[链接](/ MOD1 /东西)给我403错误 - “禁止 - 你没有权限访问这个文件”(我已经把它在文件夹mod1中)。是否有可能在index.php中包含来自不同文件夹的文件中的错误与php相关?因为我想出了为什么这个“简单”重定向不起作用的想法... – user1857756 2014-10-20 16:06:57