MyBB Community Forums

Full Version: Friendly URLs not working
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi guys - Firstly thanks for MyBB, it's really a cool forum platform.

I have the following issue: I have enabled friendly URLs ("Enable search engine friendly URLs?" from "Automatic Detection" to "Enabled").

The links do change from

http://mybb.test/forumdisplay.php?fid=12 type


to

http://mybb.test/forum-12.html type


but, when I click on any link, I get this error message

[attachment=41927]

This is the .htaccess file, which is the default:

Options -MultiViews +FollowSymlinks -Indexes



#

# If mod_security is enabled, attempt to disable it.

# - Note, this will work on the majority of hosts but on

#   MediaTemple, it is known to cause random Internal Server

#   errors. For MediaTemple, please remove the block below

#

<IfModule mod_security.c>

	# Turn off mod_security filtering.

	SecFilterEngine Off



	# The below probably isn't needed, but better safe than sorry.

	SecFilterScanPOST Off

</IfModule>



#

# MyBB "search engine friendly" URL rewrites

# - Note, for these to work with MyBB please make sure you have

#   the setting enabled in the Admin CP and you have this file

#   named .htaccess

#

<IfModule mod_rewrite.c>

	RewriteEngine on

	RewriteRule ^forum-([0-9]+)\.html$ forumdisplay.php?fid=$1 [L,QSA]

	RewriteRule ^forum-([0-9]+)-page-([0-9]+)\.html$ forumdisplay.php?fid=$1&page=$2 [L,QSA]



	RewriteRule ^thread-([0-9]+)\.html$ showthread.php?tid=$1 [L,QSA]

	RewriteRule ^thread-([0-9]+)-page-([0-9]+)\.html$ showthread.php?tid=$1&page=$2 [L,QSA]

	RewriteRule ^thread-([0-9]+)-lastpost\.html$ showthread.php?tid=$1&action=lastpost [L,QSA]

	RewriteRule ^thread-([0-9]+)-nextnewest\.html$ showthread.php?tid=$1&action=nextnewest [L,QSA]

	RewriteRule ^thread-([0-9]+)-nextoldest\.html$ showthread.php?tid=$1&action=nextoldest [L,QSA]

	RewriteRule ^thread-([0-9]+)-newpost\.html$ showthread.php?tid=$1&action=newpost [L,QSA]

	RewriteRule ^thread-([0-9]+)-post-([0-9]+)\.html$ showthread.php?tid=$1&pid=$2 [L,QSA]



	RewriteRule ^post-([0-9]+)\.html$ showthread.php?pid=$1 [L,QSA]



	RewriteRule ^announcement-([0-9]+)\.html$ announcements.php?aid=$1 [L,QSA]



	RewriteRule ^user-([0-9]+)\.html$ member.php?action=profile&uid=$1 [L,QSA]



	RewriteRule ^calendar-([0-9]+)\.html$ calendar.php?calendar=$1 [L,QSA]

	RewriteRule ^calendar-([0-9]+)-year-([0-9]+)-month-([0-9]+)\.html$ calendar.php?calendar=$1&year=$2&month=$3 [L,QSA]

	RewriteRule ^calendar-([0-9]+)-year-([0-9]+)-month-([0-9]+)-day-([0-9]+)\.html$ calendar.php?action=dayview&calendar=$1&year=$2&month=$3&day=$4 [L,QSA]

	RewriteRule ^calendar-([0-9]+)-week-(n?[0-9]+)\.html$ calendar.php?action=weekview&calendar=$1&week=$2 [L,QSA]



	RewriteRule ^event-([0-9]+)\.html$ calendar.php?action=event&eid=$1 [L,QSA]



	<IfModule mod_env.c>

		SetEnv SEO_SUPPORT 1

	</IfModule>

</IfModule>



#

# If Apache is compiled with built in mod_deflade/GZIP support

# then GZIP Javascript, CSS, HTML and XML so they're sent to

# the client faster.

#

<IfModule mod_deflate.c>

	AddOutputFilterByType DEFLATE text/css text/html application/xhtml+xml text/xml application/xml text/plain text/x-component application/javascript application/x-javascript application/rss+xml application/atom+xml application/json application/manifest+json application/x-web-app-manifest+json application/vnd.ms-fontobject application/font-sfnt application/font-woff application/font-woff2 image/svg+xml image/x-icon

</IfModule>



# Note: You are able to choose a different name in the Admin CP. If you've done that you need to change it here too

<Files "error.log">

	Order Deny,Allow

	Deny from all

</Files>



I've searched the support forum but I haven't been able to find a solution to this. Any ideas as to what the problem is, please?



Please note this is a local installation of mybb on a Ubuntu virtual machine, it's a new installation - version MyBB 1.8.20.


Thanks in advance.
It's either in the wrong location, or the file is not named properly.
(2019-06-24, 04:07 PM)Ashley1 Wrote: [ -> ]It's either in the wrong location, or the file is not named properly.

Thanks Ashley.

Do you mean .htaccess? The name is that one, and it is located in the root folder of the forum installation.
Yes it's a common mistake not renaming htaccess.txt to .htaccess correctly.

Could be your path is not specified correctly.
(2019-06-24, 04:14 PM)Ashley1 Wrote: [ -> ]Yes it's a common mistake not renaming htaccess.txt to .htaccess correctly.

Could be your path is not specified correctly.

Thank you for the reply.

I think .htaccess came as default with this installation of MyBB, meaning, I didn't have to rename it at all.


Where would I look for the path not being specified correctly?

By the way, elsewhere here in the forum I've seen this


Quote:you need to make sure you have mod_rewrite enabled on your host and apache is running.


This was not enabled by default on the Apache2 installation I have, but I have enabled it, so that it now shows up in the phpinfo on MyBB.


Is there anything else that needs to be enabled on Apache2 that maybe isn't?
So, it turns out that .htaccess was being ignored altogether.

AllowOverride None

was the culprit.

I had to change the apache2.conf file in the /etc/apache2 folder as follows:

<Directory /var/www/>
 Options Indexes FollowSymLinks
# AllowOverride None
AllowOverride All

Require all granted
</Directory>

I.e. change AllowOverride None to AllowOverride All



that solved the problem.