我根本不擅长正则表达式。
我使用的RewriteRule是:
RewriteRule ^([a-zA-Z0-9_-]+)$ /kurum.php?sef=$1 [QSA]
哪个转换
http://fxrehber.com/kurum.php?sef=gcm-forex来 http://fxrehber.com/gcm-forex
我的php文件将URL处理为:
<a href="http://<?php echo $demoUrl ?>" target="_blank">Open Demo Account</a>
如果我的php文件中没有包含“http://”,则链接会转到
http://fxrehber.com/www.example.com
所以我将数据库中的URL保存为:www.example.com
但是现在我需要使用带https的URL,我需要从php文件中删除“http://”,我可以将数据库中的URL保存为www.example.com和{{3 }}
这样做的方法是什么?用一些正则表达式更改我的RewriteRule或修改我的php文件?
答案 0 :(得分:2)
好的,我非常关注正则表达式和RewriteRule,所以在解释我的问题时我明白它可以通过检查URL中是否包含http / https来解决:
if (0 !== stripos($demoUrl, 'http://') && 0 !== stripos($demoUrl, 'https://'))
{ $demoUrl = 'http://' . $demoUrl; }
现在我可以在数据库中保存所有3种类型的URL(以www,http和https开头),而不需要修改旧的URL。 但我仍然想知道是否有一种方法可以通过重写来使用没有http / https的链接。 (正如我之前所说,当我点击我网站上的链接“www.example.com”时,它会尝试访问www.mysite.com/www.example.com)
答案 1 :(得分:0)
rewrite
规则中的正则表达式用于启用干净的URL。该机制将整个URI传递给kurum.php
- 通过$_GET['sef']
,其中内容routing应该发生。
如果匹配的文件/目录与请求URI匹配,则以下规则将禁用 rewrite
。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9_-]+)$ /kurum.php?sef=$1 [QSA]