PHP - 带有扩展/未扩展链接正则表达式用于重写

时间:2014-09-28 20:07:55

标签: php regex mod-rewrite url-rewriting rewrite

首先,我的英语不太好,我认为已经足够了。

所以,我有这个规则,它使用未扩展链接(localhost / abc)

RewriteRule ^([0-9a-zA-Z-_/]+)$ Sayfalar.php?Sayfa=$1

http ://127.0.0.1:84/Bilgilerim
---> http ://127.0.0.1/Sayfalar.php?Sayfa=Bilgilerim

http ://127.0.0.1:84/Bilgilerim/dasdasd/asdasd/asdasd
---> http://127.0.0.1/Sayfalar.php?Sayfa=Bilgilerim/dasdasd/asdasd/asdasd

但我想有时使用像#xx; .xx'这样的扩展字符。我试着用这个 ^([0-9a-zA-Z -_ /] +)$。?来做到这一点,但我没有做到。 所以,如果有任何解决方案

http://127.0.0.1:84/Bilgilerim
---> http://127.0.0.1/Sayfalar.php?Sayfa=Bilgilerim
http://127.0.0.1:84/Bilgilerim.xx
---> http://127.0.0.1/Sayfalar.php?Sayfa=Bilgilerim.xx

http://127.0.0.1:84/Bilgilerim/dasdasd/asdasd/asdasd
---> http://127.0.0.1/Sayfalar.php?Sayfa=Bilgilerim/dasdasd/asdasd/asdasd
http://127.0.0.1:84/Bilgilerim.xx/dasdasd/asdasd/asdasd
---> http://127.0.0.1/Sayfalar.php?Sayfa=Bilgilerim.xx/dasdasd/asdasd/asdasd

请与我分享:/

2 个答案:

答案 0 :(得分:1)

您只需在角色类中添加句点:

RewriteRule ^([0-9a-zA-Z-_/.]+)$ Sayfalar.php?Sayfa=$1

这样可以重写您提到的网址 -

http://127.0.0.1:84/Bilgilerim.xx

http://127.0.0.1:84/Bilgilerim.xx/dasdasd/asdasd/asdasd

希望有所帮助

答案 1 :(得分:1)

您可以将此代码放入htaccess(必须位于根文件夹中)

RewriteEngine On

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

注意:RewriteCond行可以防止重写现有文件(如css文件)

相关问题