我想知道如何在我的网址上留出句号。目前,如果我有网址:
http://www.mydomain.com/Page/I.D.K
抓取信息的页面将返回
标题:I.D.K(没有结束期)
这也会在其他标点符号中发生,并且会影响我的页面错误地显示信息。谢谢你的期待,希望有人知道解决方案。
我在htaccess文件中使用以下内容:
RewriteRule ^([^/.]+)/?$ /index.php?Page=$1 [L]
RewriteRule ^([^/.]+)/([^/]+)/?$ /index.php?Page=$1&Level1=$2 [L]
RewriteRule ^([^/.]+)/([^/]+)/([^/]+)/?$ /index.php?Page=$1&Level1=$2&Level2=$3 [L]
RewriteRule ^([^/.]+)/([^/]+)/([^/]+)/([^/]+)/?$ /index.php?Page=$1&Level1=$2&Level2=$3&Level3=$4 [L]
答案 0 :(得分:1)
好的问题几乎解决了。如果我尝试&
,Artist1 & Artist2
仍然会破坏我的字符串,但我会使用字符串替换来替换该符号。无论如何,为了在任何地方允许标点符号,即使在最后,我在重写规则中用+
替换了所有*
。以下是它现在的样子:
RewriteRule ^([^/.]*)/?$ /index.php?Page=$1 [L]
RewriteRule ^([^/.]*)/([^/]*)/?$ /index.php?Page=$1&Level1=$2 [L]
RewriteRule ^([^/.]*)/([^/]*)/([^/]*)/?$ /index.php?Page=$1&Level1=$2&Level2=$3 [L]
RewriteRule ^([^/.]*)/([^/]*)/([^/]*)/([^/]*)/?$ /index.php?Page=$1&Level1=$2&Level2=$3&Level3=$4 [L]
希望这有助于其他有类似问题的人。
答案 1 :(得分:0)
我假设它位于http://www.mydomain.com/。这是我用于第二条规则的内容(然后可以转换为其他规则):
RewriteRule ^([A-Za-z0-9\-,]+)/([A-Za-z0-9.\-,]+)/?$ /index.php?Page=$1&Level1=$2 [L]
这将匹配以下内容:(并且将允许连字符,逗号和Level1的句点)
IDK/Jump.ing.
IDK/Jump.ing./
但不是:
S$!LV/J
我尝试将我的选项列入白名单(类似/[A-Z]/
),而不是将它们列入黑名单(/[^3-5]/
)。我确信这两个选项都有争议,但我喜欢白名单主要是因为我可以控制可以使用的内容。如果我没有将它包含在我的列表中,那么它不是一个有效的选项。当然,如果您接受了很多选项,那么这可能会产生一些非常长的角色类或诸如此类的东西。如果有人去http://www.mydomain.com/Page/I.D.K.&somevariable=somevalue怎么办?它可能会破坏你的脚本(如果这个人很聪明)。您的RewriteRule会将它们发送到/index.php?Page=Page&Level1=I.D.K.&somevariable=somevalue
。根本不是你预期的事情。