所以我正在仔细阅读stackoverflow寻找PHP seo友好路径参数的答案,并遇到了几个examples,但没有完全像我需要的那样。我确定我最大的问题不是充分理解RewriteRule
。无论如何,这就是我需要的:
1)我需要从所有页面中删除(.php)
http://www.example.com/directory1/file1 <---- no .php
http://www.example.com/directory1/file2 <---- no .php
http://www.example.com/anotherDirectory/file1 <---- no .php
2)某些目录中的页面能够以SEO友好的形式获取查询参数。
http://www.example.com/directory1/file2/param1/value1/param2/value2
希望有一个$_GET
。这是目录结构:
/index.php
/directory1/
--file1.php?param1=$1¶m2=$2¶m3=$3
--file2.php
/anotherDirectory/
--file1.php
这就是我所拥有的(但不起作用,即没有得到查询参数)
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^([a-z-]+)$ index.php/directory1/file1.php?param=$1 [QSA,L]
旁注:
1)如何处理可选参数?就像param1-3可能是可选的一样,或者param2-3可能是可选的
2)我还需要为每个文件设置一套不同的规则吗?