当我将旧网站升级到新服务器时.因为我的旧网站有这么多动态网址,我计划将所有动态网址重定向到静态网址.因为我成功地将我的一些动态网址重定向到静态,但问题是我有大约5000个动态网址.所以我想使用.htaccess将所有动态网址重定向到主页.如何实现这一目标.任何人都可以在这方面帮助我.
我的动态网址结构是这样的 http://www.mysite.com/play.php?id=4818
我使用以下结构将大约50个url重定向到静态.
RewriteCond %{QUERY_STRING} ^id=4818$
RewriteRule ^play\.php$ http://www.mysite.com/play/Dinos_Egg_Hatch? [R=301,L]
Run Code Online (Sandbox Code Playgroud)
现在我的目标是将除已经重定向的网址之外的所有网址重定向到主页.
任何的想法?
我有以下文件夹:
mywebsite/en/index.php
mywebsite/en/product/info.php
mywebsite/en/tags/tags.php
mywebsite/en/games/list.php
Run Code Online (Sandbox Code Playgroud)
我的网站正在友好的网址上运行,上面提到的文件可从以下友好网址访问
mywebsite/en/?pageno=1
mywebsite/en/product/Nike-glove
mywebsite/en/tags/Nike
mywebsite/en/games/ice-sports
Run Code Online (Sandbox Code Playgroud)
我有一些例子,但没有什么对我有用...我想阻止直接访问.php文件..我想用htaccess做...我可以吗?
谢谢和亲切的问候
Reelmark
我希望登录用户可以访问PDF文件,匿名用户无法从浏览器访问该文件,如www.domain.com/pdf/name.pdf
我的pdf文件已损坏.单击下载时失败.
我创建了pdf文件夹,保留了我的所有pdf.我有HTML代码
<ul>
<li>
<a href="/check.php" target="_blank">Test</a>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
check.php文件
if($_SESSION[login]==true){
$file_url = 'http://domainname.com/pdf/example.pdf';
$filename='example.pdf';
header("Content-Disposition: attachment; filename=" . urlencode($filename));
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Description: File Transfer");
header("Content-Length: " . filesize($file_url));
$fp = fopen($file_url, "r");
while (!feof($fp))
{
echo fread($fp, 65536);
flush(); // this is essential for large downloads
}
fclose($fp);
}
Run Code Online (Sandbox Code Playgroud)
ht.access
RewriteEngine on
RewriteRule .* check.php
Run Code Online (Sandbox Code Playgroud) 我从Composer安装PHP laravel所以我创建了一个路由:
Route::get('cats/{id}', function()
{
return "Cat #$id";
});
Run Code Online (Sandbox Code Playgroud)
但是当我进入:http://www.oktech-servers.net/cats/12345
错误消息提示: Whoops, looks like something went wrong.
我还要提到htaccess:
RewriteEngine On
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
我的主机管理员说mod-rewrite工作正常,但我找不到为什么我得到这个错误!
问候.
我有一个路由和方法以这种方式操纵URL:
http://domain.com/combivent?email=WGA1cUtKZi4
Run Code Online (Sandbox Code Playgroud)
现在该URL已更改为此URL:
http://domain.com/?email=WGA1cUtKZi4
Run Code Online (Sandbox Code Playgroud)
但旧的电子邮件仍旧保留旧电子邮件.我需要将每个URL从旧方式重定向到新方式.例如,如果我调用它,http://domain.com/combivent?email=WGA1cUtKZi4那么我应该重定向到http://domain.com/?email=WGA1cUtKZi4如何在Symfony2中实现这一点?我可以在路由中使用任何类型的通配符,还是我需要保留这两种方法并在内部处理它?这可以在.htaccess水平上完成吗?有什么建议?
这是.htaccess看起来像:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^app\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .? - [L]
# Remove combivent word from the URL when call a brand page
RewriteRule ^combivent?email=([^/]+)$ /?email=$1 [L,QSA,R=301]
RewriteRule .? %{ENV:BASE}/app.php [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
此外,这domain.com是共享三个域的VirtualHost的别名.将VH定义视为:
ServerName maindomain.com
ServerAlias domain.com
ServerAlias domain1.com
Run Code Online (Sandbox Code Playgroud)
更新
以下是完整.htaccess定义: …
我正在建立一个论坛,网址包含您要查看的主题的标题.但如果它包含一个!然后它会抛出404错误.我知道ASCII字符!是%21,我假设urlencode()会改变!到%21但它没有.当我点击链接时,网址仍然包含!这打破了网址.有小费吗?
我有一个HTML表单,代码如下:
<form action="search/" method="get">
<input type="search" value="search for..." id="search" />
</form>
Run Code Online (Sandbox Code Playgroud)
当我按下ENTER键时,它会提交到action属性中的指定页面,但它不会将输入值添加到URL.
我希望有人搜索"政治家"关键词"GOing to like kereso/politician"
我正在使用HTACCESS使用以下代码管理SEO友好URL.
RewriteEngine On
RewriteCond %{HTTP_HOST} ^haromszekirmdsz.ro
RewriteRule (.*) http://www.haromszekirmdsz.ro/$1 [R=301,L]
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1
php_flag magic_quotes_gpc Off
Run Code Online (Sandbox Code Playgroud) 我有一些图像存储在无法通过URL访问的目录中(该目录不公开).
如何使用PHP在html页面中显示这些图像?
我在域和目录中安装了Wordpress,我有一个用PHP + MySQL开发的站点完全独立于wordpress.它独自工作.这个站点是一个后台,所以它安装在/ backoffice /目录下.
后台的目录之一我有另一个目录,我希望它与友好的URL一起使用.
在我的.htaccess中,我有以下规则:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^backoffice/edit_user/([^/\.]+)/?$ /backoffice/edit_user/index.php?o=$1 [L,NC,QSA]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_URI} !=/server-status
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteRule ^login/?$ wp-login.php [QSA,L]
RewriteRule ^postpass/?$ wp-login.php?action=postpass [QSA,L]
RewriteRule ^logout/?$ wp-login.php?action=logout [QSA,L]
RewriteRule ^lostpassword/?$ wp-login.php?action=lostpassword [QSA,L]
RewriteRule ^retrievepassword/?$ wp-login.php?action=retrievepassword [QSA,L]
RewriteRule ^resetpass/?$ wp-login.php?action=resetpass [QSA,L]
RewriteRule ^rp/?$ wp-login.php?action=rp [QSA,L]
RewriteRule ^register/?$ wp-login.php?action=register [QSA,L]
Run Code Online (Sandbox Code Playgroud)
当调用这样的URL:mydomain.com/backoffice/edit_user/joseantonio时会出现404页面.
怎么了?
提前致谢.