Apache 为url重写配置htaccess
我需要帮助我的url的重写。我想通过考虑我当前树的当前组织来精确组织我的url:Apache 为url重写配置htaccess,apache,.htaccess,mod-rewrite,url-rewriting,Apache,.htaccess,Mod Rewrite,Url Rewriting,我需要帮助我的url的重写。我想通过考虑我当前树的当前组织来精确组织我的url: -! /www .htaccess, index.php, ... --! **/views**, /assets pageA.php, pageB.php, pageC.php ---! **/pageA**, /pageB, /pageC, /errors (404.php, 500.php...) pageA1.php, **pageA2.php**, pageA3.php /!\我为每个页面使
-! /www
.htaccess,
index.php, ...
--! **/views**, /assets
pageA.php, pageB.php, pageC.php
---! **/pageA**, /pageB, /pageC, /errors (404.php, 500.php...)
pageA1.php, **pageA2.php**, pageA3.php
/!\我为每个页面使用特定的名称,前缀和数字仅用于示例,以便更好地理解文件和文件夹之间的连接。实际上,我使用的页面名称有:“contact us.php”、“our product.php” (1) 当我转到pageA.php时,我想要这个url路径:www.mywebsite.fr/pageA (2) 当我转到pageA2.php时,我想:www.mywebsite.fr/pageA/pageA2 (3) 我不想要扩展文件(.php、.html) 实际上,我不能进入路径(2),因为我有一个404页面 我创建了与特定php页面同名的文件夹,这只是为了我自己的组织,但这可能是一种不好的方式(对于SEO或其他任何东西…),事实上,我不知道 我的重写模块(www.htaccess)是:
选项+FollowSymlinks
重新启动发动机
重写基/
#退休人员在讲座中介绍了页面扩展和可访问性
重写cond%{THE_REQUEST}^[A-Z]{3,9}\/([^\]+)\.php
重写规则^/?(.*)\.php$/$1[L,R=301]
#检查请求是否针对PHP文件:
重写cond%{REQUEST_FILENAME}\.php-f
重写规则^/?(.*)$/$1.php[L]
#镇压人权
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写cond%{DOCUMENT_ROOT}/views/$1.php-f
重写规则(.*)/views/$1.php[QSA,L]
这是我脑子里想不出来的,但它应该可以工作:
RewriteRule ^page([A-Z]{1})([1-9]?).php$ http://www.mywebsite.fr/page$1$2
RewriteRule ^page([A-Z]{1})([1-9]{1})$ http://www.mywebsite.fr/page$1/page$1$2 [L,R=301]
第一个Rewrite指令检查以开头的文件名是否匹配
页面
并以结尾(在文件扩展名.php之前)
- 一个字母(从a到Z);及
- (可选)单个数字(从1到9)
然后,它根据正确的文件夹结构构建重定向,同时部署捕获的字母和捕获的数字。请编辑您的问题,以反映更接近您需要解决的情况,我将戴上我的思考帽,再试一次。谢谢。谢谢你的回答,但我忘了指定页面的前缀不同。我用了前缀“pageA”,“pageB”。。。例如实际上更多的是:“我们的团队.php”,“产品.php”,“联系我们.php”,没有数字。。。页面:第1页,第2页。。。也有不同的名字。。。在这种情况下,我认为你的例子无法解决我的问题^^^谢谢你的u@Rounin如果你需要一张图片来说明我的文件夹/视图,请向我请求。请将你的评论更改为英文,或在StackOverflow上发布时删除它们。
RewriteRule ^page([A-Z]{1})([1-9]?).php$ http://www.mywebsite.fr/page$1$2
RewriteRule ^page([A-Z]{1})([1-9]{1})$ http://www.mywebsite.fr/page$1/page$1$2 [L,R=301]