如何从URL中删除index.php?
我的Magento安装的所有url都需要index.php,例如:
http://example.com/index.php/admin/ http://example.com/index.php/customer/account/login/
问题是系统默认链接到URLs之类的
http://example.com/admin/ http://example.com/customer/account/login/
无论如何,看起来更漂亮。 我认为这是一个在.htaccess中的重写问题,但正如过去的修补已经给了我500秒,我想先问你们。
改变search引擎优化设置,刷新configurationcaching,并重新索引的URL没有按照这里build议的工作。
这可能是旧的,但我不妨写下我学到的东西。 所以无论如何,我是这样做的。
———->
在开始之前,请确保已启用Apache重写模块,然后执行以下步骤。
1)login到您的Magentopipe理区域,然后进入系统>configuration>网页 。
2)导航到不安全和安全选项卡。 确保Unsecured和Secure – Base Url选项中包含您的域名,并且不要在URL末尾保留正斜杠。 例如: http : //www.yourdomain.co.uk/
3)仍然在网页上,导航到search引擎优化选项卡,并在使用Web服务器重写选项下面select是 。
4)再次导航到“ 安全”选项卡(如果尚未安装),并在“ 使用前端使用安全URL”选项中select“是”。
5)现在转到您的Magento网站文件夹的根目录,并使用以下代码.htaccess:
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>
保存.htaccess并replace原始文件。 (请确保备份您的原始.htaccess文件之前,与它的启示!!!)
6)现在进入系统>cachingpipe理,并select所有字段,并确保操作下拉菜单设置刷新 ,然后提交。 (这当然会刷新caching。)
———->
如果这不起作用,请按照这些额外的步骤。
7)再次进入系统>configuration> web 。 这次查找当前configuration范围并从下拉菜单中select您的网站。 (这当然是设置为Default Config)
8)确保不安全和安全字段包含与以前的默认configuration文件相同的域。
9)导航到“ search引擎优化”选项卡,然后在“ 使用Web服务器重写”部分下select“ 是 ”。
10)一旦URL相同,并且重新启用保存该页面,然后返回并确保它们都被选中为默认值,然后根据需要再次保存。
11)重复步骤6。
现在你的index.php问题应该是固定的,一切都应该是好的!
我希望这有助于,祝你好运。
按照下面的步骤,它会帮助你。
第1步:转到您的站点根文件夹,您可以在那里find.htaccess
文件。 用文本编辑器打开它,find#RewriteBase /magento/
。 只需用#RewriteBase /
replace它就可以取出“magento /”
第2步:然后去你的pipe理面板,并启用重写(设置为使用Web服务器重写)。 你可以在系统 – >configuration – > Web – >search引擎优化中find它。
第3步:然后进入cachingpipe理页面(系统cachingpipe理),刷新caching并刷新以检查网站。
你必须在Apache中启用mod_rewrite来使干净的URL工作
如果mod_rewrite不在phpinfo中,你必须安装它
sudo a2enmod rewrite sudo apache2ctl -l
您需要将AllowOverride none
replace为AllowOverride all
(在/ etc / apache2 / sites-enabled / 000-default中)
重新启动Apache
sudo service apache2 restart
在Magento的pipe理员去到System > Configuration > Web > search engine Optimization
和改变“ Use Web Server Rewrites
”为是
如何在你的.htaccess中:
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L]
嗨,我迟到了..只是想指出, http://davidtsadler.com/archives/2012/06/03/how-to-install-magento-on-ubuntu/的指示是非常有用的。;
我有Ubuntu的服务器与Apache,MySql和Php安装,所以我想我可以跳到标题创buildMagento将从哪个服务目录 ,我达到了相同的问题,即OP,即我有'index.php'需要在所有的URL(或我会得到404没有find)。 然后我回到安装和configurationApache HTTP服务器,并重新启动Apache后,它完美的作品。
作为参考,我错过了:
sudo bash -c "cat >> /etc/apache2/conf.d/servername.conf <<EOF ServerName localhost EOF"
…和
sudo a2enmod rewrite sudo service apache2 restart
希望这可以帮助
我试了一下,但没有任何工作。 然后,我改变了ErJab提供的.htaccess代码片段:
RewriteRule ^(.*)$ 'folder_name'/index.php/$1 [L]
上面的线为我固定它。 其中* folder_name *是magento根文件夹。
希望这可以帮助!
如果其他解决scheme不适合您,请尝试以下操作:
第1步:(如果您的安装在webroot中)
更换
#RewriteBase /magento/
同
RewriteBase /
第2步:
添加以下行(包括排除pipe理因为后端需要内部index.php)
RewriteCond %{THE_REQUEST} ^.*/index.php RewriteRule ^(.*)index.php$ http://www.yourdomain.com/$1 [R=301,L] RewriteRule ^index.php/(admin|user)($|/) - [L] RewriteRule ^index.php/(.*) $1 [R=301,QSA,L]
之后
RewriteRule .* index.php [L]
这对我有用
如果它仍然不能正常工作,请仔细检查Magentoconfiguration:系统 – >configuration – > Web – >search引擎优化。 重写必须启用。
主要是如果你使用基于Linux的系统就像'Ubuntu',这只是build议本地用户而不是服务器。
遵循之前答复中提到的所有步骤。 +
检查它的Apacheconfiguration。 (AllowOverride All)如果AllowOverride值为none,则将其更改为All,然后重新启动apache。
<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
让我知道如果这一步帮助任何人。 如果您早点发现,它可以节省您的时间。
我从本地htaccess文件中添加确切的行。 供你参考
在110号线附近
<IfModule mod_rewrite.c> ############################################ ## enable rewrites Options +FollowSymLinks RewriteEngine on ############################################ ## you can put here your magento root folder ## path relative to web root #RewriteBase / RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]
图像是一些用户从图像中很容易理解的文本: