SEO友好的URL通过 - > mod_rewrite的

时间:2014-09-14 21:29:42

标签: regex apache .htaccess mod-rewrite

我正在尝试SEO友好 - 我的网址。

示例网址(我想要的):

  

http://sampleurl.com/FILENAME/VARIABLE/

我想将此转换为:

  

http://sampleurl.com/FILENAME.php?x=VARIABLE

我的.htaccess:

<IfModule mod_rewrite.c> 
RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f  
RewriteRule ^(.*)/(.*)/$ $1.php?l=$2 [L]

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

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f  
RewriteRule . index.php [L]

# Proper regex -> ([a-zA-Z0-9_-]+)
</IfModule>

我的挑战是:

1)尾部斜杠:我的正则表达式我必须有一个尾部斜杠。当我将正则表达式更改为读取^(.*)/(.*)/?$时 - 它会在变量的末尾添加“.php”。并且,如果我离开? - 需要尾随斜杠 - 或者,它会解析为“index.php”结果

2)在第二个RewriteRule中相同 - 斜杠之前的? =内部服务器错误 - 没有? =全部好。

所以现在一切正常,除了我必须有那个尾随斜线。

似乎我在这里错过了一些相当容易的东西 - 并且会感谢有人指出它。

0 个答案:

没有答案