我需要有关漂亮的推荐链接的帮助。例如,这里是推荐链接
http://www.my-domain.com/register.php?ref=john.doe
这是一个完美的网址,但看起来不像以下
http://www.my-domain.com/john.doe
如何使用.htaccess文件实现此目的?请注意,我的服务器中有index.php,member.php和其他许多php文件。此外,如果有人写my-domain.com,则需要点击index.php文件。
任何帮助都非常感谢。
答案 0 :(得分:0)
根据您的示例,您可以使用以下.htaccess
:
DirectoryIndex index.php
RewriteEngine On
RewriteRule ^([a-zA-Z]+\.php)$ $1 [NC,L]
RewriteRule ^([a-zA-Z]+\.[a-zA-Z]+)$ register.php?ref=$1
其工作原理如下:
index.php
,则将索引文件设置为http://www.my-domain.com/
。这应该已经有效,但以防万一。RewriteEngine
。.php
结尾的任何内容(技术上:至少包含一个字符的内容),则只会转发(即foo.php
将映射到foo.php
)。 [NC,L]
启用不区分大小写的匹配(对于扩展 - 您永远不会知道)并阻止执行任何进一步的规则。否则第二个也会每次匹配。register.php?ref=<input>
注意:这将有效防止所有以.php
结尾的用户名,但允许访问您的所有文件。它还会阻止包含少于或多于一个点的用户名,如果您的文件或用户名包含任何其他字符(例如foo_bar.php
或i_love_php
),它将以当前形式无效。但如果需要,可以轻松克服这两个限制,只提供有关预期行为的更多细节。
您可以添加RewriteCond
以检查是否确实存在具有所请求名称的.php
文件,否则将其视为用户名,但我真的不喜欢&#39 ;认为你应该这样做(考虑添加新文件)。
答案 1 :(得分:0)
这将为您提供所需的一切。此规则将处理好的链接,并将旧链接重定向到漂亮的链接。
public class PixelSelectorVM : ViewModelBase
{
private BitmapImage frame;
public MainWindowVM parentMainWindowVM;
private ImageColorPicker imageColorPicker;
public ImageColorPicker MyImageColorPicker
{
get
{
return this.imageColorPicker;
}
set
{
this.imageColorPicker = value;
OnPropertyChanged("MyImageColorPicker");
}
}
public BitmapImage Frame
{
get
{
return this.frame;
}
set
{
this.frame = value;
OnPropertyChanged("Frame");
}
}
public PixelSelectorVM(BitmapImage image, MainWindowVM mainWindowVM)
{
this.frame = image;
this.parentMainWindowVM = mainWindowVM;
this.imageColorPicker = new ImageColorPicker();
this.imageColorPicker.Source = image;
}
public PixelSelectorVM() { }
public ICommand Save
{
get
{
return new RelayCommand(SaveExecute);
}
}
public ICommand Cancel
{
get
{
return new RelayCommand(CancelExecute);
}
}
private void SaveExecute()
{
}
private void CancelExecute()
{
}
}